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))