这篇要讲到的就是如何利用Python与openpyxl结合来处理xlsx表格数据。Python处理表格的库有很多,这里的openpyxl就是其中之一,但是它是处理excel2007/2010的格式,也就是xlsx系列,如果要处理以前的2003的表格(xls),那么则要用另外的库。如果只是要进行表格数据读取和进行简单的写数据的话,推荐使用openpyxl。下篇会介绍到另外一个操作表格文档的库,叫做xlsxwriter,这是一个专门写表格的库,在写数据和进行表格画图方面比较强大(不能读取和修改表格),因为这次分析数据最后需要进行绘图展示(openpyxl虽然也能作图,但是功能有限),所以也会用到这个库。
openpyxl库学习
1、wb = Workbook()
2、获取sheet工作区间
1)# 激活worksheet,得到一个worksheet,默认得到sheet1
ws = wb.active
2)#命名sisilast格式,插入到最后
ws2 = wb.create_sheet("sisilast")
3)#命名sisilast格式,插入到最开始的位置
ws3 = wb.create_sheet("sisifrist",0)
3、给指定单元格赋值
1)直接写数据到指定的单元格中
>>>ws['A1'] = 100
2)使用openpyxl.worksheet.Worksheet.cell()
方法操作某行某列的某个值:
>>> ws.cell(row=6,column=5,value='kaixin')
注意:
- 当worksheet在内存中被创建时,是没有包含cells的,cells是在首次访问时创建.
- 可以循环在内存中创建cells,这时不指定他们的值也会创建该cells些:(创建8x8cells)
>>> for i in range(1,9):
for j in range(1,9):
ws.cell(row=i,column=j,value=i*j)
3.也可以使用 openpyxl.worksheet.Worksheet.iter_rows()
方法:(需要指定行->行,截止列)
4.也可以使用 openpyxl.worksheet.Worksheet.iter_cols()
方法:(需要指定列->列,截止行)
5.如果你需要遍历所有文件的行或列,可以使用openpyxl.worksheet.Worksheet.rows()
属性:>>>tuple(ws.rows)
or openpyxl.worksheet.Worksheet.columns() 属性:>>>tuple(ws.columns)
4、# 附加一行,从第一列开始附加
ws.append([1,2,3])
5、#保存文件到指定位置
wb.save("D:/test/test.xlsx")
6、修改sheet名称
创建的sheet的名称会自动创建,按照sheet,sheet1,sheet2自动增长,通过title属性可以修改其名称。
>>> from openpyxl import Workbook
>>> wb = Workbook()
>>> ws = wb.create_sheet("haha")
>>> ws.title = "heihei"
>>> wb.save("D:/test/heihei.xlsx")
7、查看workbook中的所有worksheets名称:openpyxl.workbook.Workbook.get_sheet_names()
>>> print(wb.sheetnames)
['Sheet', 'heihei']
8、直接访问单元格
>>> value1 = ws['A3']
9、openpyxl.load_workbook()已经存在的workbook:
10、使用公式