利用openpyxl库操作Excel文件的读写(仅支持xlsx文件,xls文件会报错)以下代码供参考
#! /user/bin/env python
# encoding: utf-8
import openpyxl
import os
def edit_excel(filepath, modifys):
"""
编辑Excel文件并保存,如果输入的文件路径不存在,将创建一个新文件
:param filepath: 文件路径
:param modifys: list, e.g:[{'row': 1, 'col': 1, 'value': 'value1'},{'row': 2, 'col': 2, 'value': 'value2'}]
修改参数为列表嵌套字典,提供要修改的行号、列号、修改的值等
:return: None
"""
if not os.path.exists(filepath):
wb = openpyxl.Workbook()
wb.save(filepath)
wb.close()
wb = openpyxl.load_workbook(filepath)
sh = wb['Sheet']
for mod in modifys:
sh.cell(row=mod['row'], column=mod['col'], value=mod['value'])
wb.save(filepath)
def read_excel(filepath, cells, sheetname='Sheet'):
"""
读取Excel单元格的数据,返回数据列表
:param filepath: 文件完整路径
:param cells: 单元格参数,包括行号列号[{'row': 1, 'col': 1}, {'row': 1, 'col': 2}]
:param sheetname:
:return: response 返回数据列表:[{'row': 1, 'col': 1, 'value': '姓名'}, {'row': 1, 'col': 2, 'value': '年龄'}]
"""
if not os.path.exists(filepath):
print("file not exist! please check the filepath".title())
else:
wb = openpyxl.load_workbook(filepath)
sh = wb[sheetname]
response = []
for c in cells:
value = sh.cell(row=c['row'], column=c['col']).value
cell = {'row': c['row'], 'col': c['col'], 'value': value}
response.append(cell)
wb.close()
return response