基于openpyxl的xlsx读写
在国企工作之后有很多excel表格处理的需求,这也是我最近敲的为数不多的代码了,不过也作为一种学习记录一下。
我在python中采用的表格读写库是openpyxl,简明易用,但是有一个限制,就是只能用于xlsx文件的读写,不能读写xls等。不过在日常生活中已经够用了,接下来就介绍一些常用的xlsx读写方法。
常用方法
# This script is used for rename the data into lowercase # last modified by Pbex 2020.9.5 import openpyxl # read xlsx workbook rbTableList = openpyxl.load_workbook("已获得的表清单.xlsx") # read worksheet, differ from workbook print("Reading worksheet...") work_sheet = rbTableList.worksheets[0]
# 如果想获取别的sheet页采取下面这种方式,先获取所有sheet页名,在通过指定那一页。 # 从名称获取sheet # sheets = rbx.get_sheet_names() # s0 = rbx.get_sheet_by_name(sheets[0]) # 或者形如索引选择 .worksheets[0] r = rbTableList.worksheets[0].rows # 获取某一列的数据 i = 1 for row in r: i = i + 1 rbTableList.worksheets[0].cell(row=i, column=2).value = \ str(rbTableList.worksheets[0].cell(row=i, column=2).value).lower() # 获取第i行2 列的数据,并将其改为小写 rbTableList.save("已获得的表清单.xlsx")
# 新建一个表输出
output = openpyxl.Workbook()
output.create_sheet("输出表", 0)
output.save("xxx.xlsx")
通过上面的示例,可以了解xlsx文件读、写、存的过程:
通过openpyxl.load_workbook("xxx.xlsx")来加载xlsx文件 -> 对特定的工作表(worksheet)进行读写
worksheet中的每一格为一个cell,如上文提到的
rbTableList.worksheets[0].cell(row=i, column=2)
通过对cell进行访问来读写表格,完成读写后进行保存,是一个十分符合直觉的操作方式。
值得注意的是,worksheet里的cell编号是从1开始的,而不是编程常用的0开始……
注意事项
有时候读写文件并不是严格的按照打开时所看到的工作表顺序,所以如果需要精确定位工作表的话,还是建议采用:
sheets = rbx.get_sheet_names()
s0 = rbx.get_sheet_by_name(sheets[0])
以表名获取worksheet的形式来读写工作表。
浙公网安备 33010602011771号