基于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的形式来读写工作表。

 

posted on 2020-10-10 19:34  Pbex  阅读(123)  评论(0)    收藏  举报