【python】使用xlwt、xlrd、xlutils、openpyxl操作excel
模块介绍
xlwt、xlrd、xlutils可以完成读excel的读、写和修改操作,只需要通过pip安装相应的模块即可。
使用xlrd模块读excel
使用例子
import xlrd# 常规读取
filename = "test.xls" #文件路径
wb = xlrd.open_workbook(filename) # 加载这个xls文件
sh = wb.sheet_by_index(0) # 根据索引选择表格
sh.row(i) # 获取第i+1行的所有数据组成的list
sh.row_values(rowx, start_colx=0, end_colx=None) # 获取第rowx+1行的某几列的数据并组成list
rows = sh.nrows # 获取该表格所有行数
ncols = sh.ncols # 获取该表格所有列数
for i in range(1,rows): # 从第二行开始按行读取title = sh.cell(i,0).value # 取第i+1行,第1列的数据ctype = sh.cell(i,0).ctype # 取第i+1行,第1列的数据类型# 根据列名获取某行的值
def get_col_index(name,workbook,sheet):for i in range(sheet.ncols):name2 = sheet.cell(0,i).valueprint(name2)if name2 == name:return ireturn -1value = sh.cell(1,get_col_index("创建时间")).value
value的ctype
ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
date类型的转换
from xlrd import xldate_as_tuplecell = sh.cell(i,10)
if cell.ctype == 3:date = xldate_as_tuple(sheet.cell(i,3).value,0)pubtime = datetime.datetime(*date)
使用xlwt模块写excel
使用例子
import xlwtfile = xlwt.Workbook() #新建个文件
sheet = file.add_sheet('test_sheet0',cell_overwrite_ok=True) #新建个表格,指定表名以及是否可覆盖写
sheet.write(i,j,value) #在第i+1行和第j+1列写value(i、j从0开始)
file.save("test_xls.xls") #保存成xls文件并指定文件名
更多功能
# 设置某列的宽度
sheet.col(0).width = 200# 写日期
style = xlwt.XFStyle()
style.num_format_str = 'D-MMM-YY'
worksheet.write(0, 0, datetime.datetime.now(), style)# 写公式
sheet.write(1, 1, xlwt.Formula('SUM(A1,B1)'))# 合并单元格的写
sheet.write_merge(0, 0, 0, 3, 'First Merge')
# write_merge(x, x + h, y, w + y, value, sytle) x和y表示当前行列,h和w为要合并的行数和列数# 表格的style# 修改字体:
style = xlwt.XFStyle()
font = xlwt.Font() # 为样式创建字体
font.name = 'Times New Roman' # 字体名称
font.bold = True # 黑体
font.colour_index = 2 # 修改字的颜色
font.underline = True # 下划线
style.font = font # 使用到样式中
sheet.write(0,1,"编号",style)# 修改单元格背景色
style = xlwt.XFStyle()
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 5 #色号,可以在源代码中看到色号和颜色的对应关系
style.pattern = pattern
sheet.write(0,2,"编号",style)
使用xlutils模块修改excel
思路:使用xlutils的copy函数复制一份xlrd读取到的workbook,并在此基础上进行写操作。
使用例子
import xlrd
import pymysql
from xlrd import open_workbook
from xlutils.copy import copy
import xlwtfile_name = "test_update.xls"
workbook = xlrd.open_workbook(file_name)
sheet = wb.sheet_by_index(0)
workbook_update = copy(workbook) # 复制workbook
sheet_update = workbook_update.get_sheet(0)
sheet_update.write(i,j,value)
workbook_update.save(file_name)
然而,无论是xlrd、xlwt还是xlutils,对excel的操作都仅限excel一个表的大小小于等于65535行时才可以,大于65535行的话,就需要另外一个模块了,这就是openpyxl。
使用openpyxl修改excel
贴个demo,自己领悟- -
# # coding = utf-8import openpyxl
from urllib.parse import urlparsefilename = "链接.xlsx"
workbook = openpyxl.load_workbook(filename)
worksheet = workbook.worksheets[0]
# worksheet = workbook.active
# 在第一列之前插入一列
#worksheet.insert_cols(15) #
print(worksheet.max_row)
print(worksheet.max_column)
for i in range(1,worksheet.max_row):#print(row[2].value)url = worksheet.cell(row=i, column=2).valueprint(url)if not url or "http" not in url:continue
# print(url)url = url[:url.find("?")] if "?" in url else urldomain_name = urlparse(url).netlocprint(domain_name)worksheet.cell(row=i, column=3).value = domain_name
# # 枚举出来是tuple类型,从0开始计数
#
file_name = filename[:filename.find(".")] + "_结果.xlsx"
workbook.save(file_name)
【python】使用xlwt、xlrd、xlutils、openpyxl操作excel相关推荐
- 包无法安装_详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel
详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel 注意:下列教程为 Windows7 64位:Windows 10有部分步骤有差异,请参考使用! 01 下载Python程序 ...
- python openpyxl 操作excel xlrd.biffh.XLRDError: Excel xlsx file; not supported错误修改
python xlrd/openpyxl 操作excel xlrd.biffh.XLRDError: Excel xlsx file; not supported错误修改 代码: 错误: excel读 ...
- python openpyxl 操作excel ,使用 conditional_formatting,insert_rows
场景 python 使用 openpyxl 操作 excel 对于简单的格式来说还是挺方便的,但是对于复杂的格式,操作没有手动来的简单,如果对于复杂的格式也不是用python来做的.对于一个原有的报表 ...
- Python办公自动化之 openpyxl 操作 Excel
今天给大家分享一篇用 openpyxl 操作 Excel 的 Python 办公自动化文章.5分钟就能掌握- 各种数据需要导入Excel?多个Excel要合并?目前,Python处理Excel文件有很 ...
- python调用百度OCR识别证件+操作excel表格
python调用百度OCR识别证件+操作excel表格 如果要操作文件的话最好让程序知道文件存不存在,因为做了GUI界面,报错不会直接弹出来,异常捕获就用得比较频繁 因为面向对象没学好,GUI是用工具 ...
- python使用 xlwt,xlrd,xlutils库操作Excel教程
文章目录 (一)xlwt完整示例 (二) xlwt,xlrd,xlutils完整示例 (三)自主选择excel的存储位置 (四)表格样式速查 (五)+样式示例代码(注释版) (一)xlwt完整示例 # ...
- 【Python基础】python使用openpyxl操作excel
1.openpyxl库介绍 openpyxl最好用的python操作excel表格库,不接受反驳: openpyxl官网链接:openpyxl官网 openpyxl只支持[.xlsx / .xlsm ...
- python openpyxl操作Excel表格
原创:未经允许不得转载,转载需标明出处 打算分为两个部分: 第一部分为:操作Excel表格 第二部分为:操作Excel图表 现在发布为第一部分内容 在最近的项目中的使用到了提取Android帧率日志, ...
- Python.openpyxl操作Excel
Python 操作 Excel 存取数据 1. openpyxl 模块 1.1 安装 openpyxl 模块 1.2 Excel 文件的三个对象 1.2.1 Workbook 对象 1.2.2 Wor ...
最新文章
- 帮朋友招聘赴北京微软ASP.NET开发工程师
- AI寒冬论作者:通用人工智能仍是白日梦
- jsp 特殊字符转义
- 【蚁群路径规划】基于MATLAB的蚁群算法的二维路径规划
- [云炬创业学笔记]第三章商业创意的发掘与评估测试2
- c语言主范式与编码,超详细!终于搞明白KMP算法
- SQL Server 系统存储过程
- PHP 计算两个两个文件的相对路径
- mysql插入日期_初识MySQL
- 一个华为设备防病毒 ACL 配置
- compile php with openssl on mac osx error 填坑
- 手机自带计算机的功能,手机上的这3个小功能,比电脑方便好用,你知道吗?...
- Apache ab 使用说明
- Spring定时器的配置
- 51单片机语音跳绳计播报跳绳数目
- 别错过!漂亮又好用的思维导图模板
- 被逼无奈,沉默寡言的程序员也开始露脸拍视频了
- 计算机网络中常见的名词缩写
- C语言 结构体指针强制转换,c中结构体指针的强制类型转换
- 1028 大数乘法 V2(NTT or FTT)