xlwt模块只能写xls文件,不能写xlsx文件(写xlsx程序不会报错,但最后文件无法直接打开,会报xlwt模块只能写xls文件,不能写xlsx文件(写xlsx程序不会报错,但最后文件无法直接打开,会报错)。而pandas即可处理xls文件、也可处理xlsx文件。
@@ 二维的DataFrame来表示表格式的数据,相比较于Numpy,Pandas可以存储混合的数据结构,同时使用NaN来表示缺失的数据,而不用像Numpy一样要手工处理缺失的数据,并且Pandas使用轴标签来表示行和列。
@@@ Python xlrd/xlwt 处理excel文件(xls和xlsx) - TonyX2 - 博客园 (cnblogs.com)
二、openpyxl模块
openpyxl模块可实现对excel文件的读、写和修改,只能处理xlsx文件,不能处理xls文件,使用之前同样需要先安装该模块,再导入 import openpyxl。
对于openpyxl,行数和列数都从1开始,单元格的行和列也从1开始。例如sheet.cell(1,2).value表示第一行第二列单元格的内容
1.openpyxl读取excel文件
获取工作簿对象:book = openpyxl.load_workbook('excel文件名称')
获取所有工作表名称:names = book.sheetnames
获取工作表对象:sheet1 = book.worksheets[n]、sheet2 = book['工作表名称']、sheet3 = book[book.sheetnames[n]]
获取工作表名称:title = sheet1.title
获取工作表行数:rows = sheet1.max_row
获取工作表列数:cols = sheet1.max_column
获取某一单元格内容:cell = sheet.cell(1,2).value、sheet['单元格'].value例如sheet['B1'].value
假设有一fruit2.xlsx,除后缀名其他与上述fruit.xls完全一样
获取单元格的内容
print(sheet.cell(1,2).value) #第一行第二列单元格的内容
print(sheet['a2'].value) #使用excel单元格的表示法,字母不区分大小写
3.openpyxl写excel文件
创建工作簿:book = openpyxl.Workbook(),如果写入中文为乱码,可添加参数encoding = 'utf-8'
创建工作表:sheet = book.create_sheet('工作表名称',0),0表示创建的工作表在工作薄最前面
向单元格写入内容:sheet.cell(m,n,'内容1')、sheet.cell(x,y,'内容2')
保存工作簿:book.save('excel文件名称'),默认保存在py文件相同路径下,如果该路径下有相同文件,会被新创建的文件覆盖。
@@@ pandas处理excel文件和csv文件 - Forever77 - 博客园 (cnblogs.com)