openpyxl是一个创建、修改excel文件的模块,保存的文件的扩展名一般为.xlsx
食用方法
导入模块
from openpyxl import Workbook, load_workbook
# Workbook:创建新文件
# load_workbook:读取已有文件
from openpyxl.style import Alignment, Font
# Alignment:设置单元格格式
# Font:设置字体格式
打开文件
if path.exists():
wb = load_workbook(path)
else:
wb = Workbook()
# 选择默认的表
# ws = wb.active
# 也可以创建删除已有的表,创建新表
读写单元格
写入单元格有两种方式:
# 第一种
# 可以构建读写用字符串,形成类似'A1'这种形式的字符
temp = '%s%s' % (column, row)
ws[temp] = text
# 第二种
ws.cell(row=1, column=1, value=text)
读取单元格同样有两种方法:
# 第一种
ws['A1'].value
# 第二种
ws.cell(row=1, column=1).value
合并单元格并居中
# 构造例如 `A1:B2` 这种形式的字符
ws.merge_cells('%s%s:%s%s' % (start_column, start_row, end_column, end_row))
# 单元格合并后标号等于合并前左上角第一个单元格的标号
ws["%s%s" % (start_column, start_row)].alignment = Alignment(vertical='center', wrapText=True)
# vertical='center':单元格垂直居中
# wrapText=Tru:自动换行
注:合并单元格的内容为合并前左上角单元格的内容,所以合并并写入的操作顺序为“先写入左上角,再合并”
保存文件
ws.save(abspath)
# abspath是以.xlsx扩展名结尾的绝对地址,(相对地址也可以),推荐使用pathlib构造
# 我是这样用的
docname = 'name.xlsx'
wb.save(Path.joinpath(rootPath, docname))