有时我们需要将数据写入Excel文件,比如从网站爬取的数据,以及处理、清洗后的数据,都可以用Python代码完成数据的写入。
上节内容说到利用第三方库openpyxl读取Excel文件,那么本节内容将说说如何把数据写入到Excel。
写入Excel
导入模块
from openpyxl import *
from openpyxl.styles import Font
创建 workbook 工作薄,默认创建一个名为 Sheet 的表格
wb = Workbook()
添加/插入工作表
wb.create_sheet(title="工作表名称", index=0)
删除工作表
wb.remove(wb["工作表名称"])
得到 worksheet 对象
ws = wb['Sheet']
复制工作表
wb.copy_worksheet(ws)
写入数据到单元格,三种方法
ws['A1'] = "Hello"
ws.cell(row=1, column=2).value = "World"
list = [1,2,3,4]
ws.append(list)
定义字体样式
fontstyle = Font(name="微软雅黑", size=12, bold=True, color="ffff0000")

设置字体样式
ws.cell(row=1, column=1).font = fontstyle
ws['A1'].font = fontstyle
设置行高
ws.row_dimensions[1].height = 50
设置列宽
ws.column_dimensions['A'].width = 20
合并单元格
ws.merge_cells('A5:C6')
设置公式
ws['A5'] = "=sum(C1:C4)"
取消合并单元格
ws.unmerge_cells('A5:C6')
保存到Excel文件
wb.save(filename)
简单示例代码:
# 导入模块
from openpyxl import *
from openpyxl.styles import Font
def write_excel_file(filename):
# 初始化workbook对象
wb = Workbook()
# 取得当前活动worksheet对象
ws = wb.active
lists = [["序号", "姓名", "年龄"],[1, "张三", 20],[2, "李四", 12],[3, "王五", 24]]
for row in lists:
ws.append(row)
# 定义样式
fontstyle = Font(name="微软雅黑", size=12, bold="fd", color="ffff0000")
# 应用字体样式
for i in range(ws.max_column):
ws.cell(row=1, column=i + 1).font = fontstyle
# 合并单元格
ws.merge_cells('A5:C6')
# 设置行高
ws.row_dimensions[1].height = 50
# 设置列宽
ws.column_dimensions['A'].width = 20
# 设置公式
ws['A5'] = "=sum(C1:C4)"
# 取消合并单元格
ws.unmerge_cells('A5:C6')
# 保存到Excel文件
wb.save(filename)
write_excel_file("2.xlsx")
