python3上Excel文件操作的库比较多,新手一开始不知道如何选择合适的库,故整理如下:
- xlwt: 只能写不能读,只支持python2.3到python2.7版本,只支持xls文件。
- xlrd :只能读不能写
- xlutils :修改并保存
- openpyxl :可以实现对xlsx格式的读、写、修改,支持python3.x。个人推荐这个库
xlrd
# 打开文件 workbook1 = xlrd.open_workbook(user,formatting_info=False) # 获取所有sheet print("所有工作表:",workbook1.sheet_names()) sheet1 = workbook1.sheet_by_index(0) # 获取整行的值 print(sheet1.row_values(0)) # 获取某个单元格的值,行、列下标均从0开始 print(sheet.cell_value(row,line))
xlutils
# 打开文件 workbook1 = xlrd.open_workbook(user,formatting_info=False) workbook2 = copy(workbook1) # xlutils 获取 sheet sheet_new = workbook2.get_sheet(0) # 单元格更新,行、列均下标均从0开始 sheet_new.write(row,line,'通过') # 保存 workbook2.save("../testdata/result.xls")
Openpyxl
import openpyxl filename="../testdata/user.xlsx" # 1.打开文件 wb = openpyxl.load_workbook(filename,read_only=False) print(wb.sheetnames) # 2.选择工作表 ws = wb[wb.sheetnames[0]] print(ws) # 3.遍历单元格 for row in ws.rows: for cell in row: print(cell.value) # 4.存储数据 # 方式一:数据可以直接分配到单元格中(可以输入公式) ws['A1'] = 42 ws.cell(row=1,column=2, value="test") # 方式二:可以附加行,从第一列开始附加(从最下方空白处,最左开始)(可以输入多行) ws.append([1, 2, 3]) # 方式三:Python 类型会被自动转换 ws['A3'] = datetime.datetime.now().strftime("%Y-%m-%d") # 5.保存数据 wb.save('文件名称.xlsx')