目录:
xlsxwriter 支持 Excel 2007+ (XLSX) 格式。
$ pip3 install xlsxwriter
import xlsxwriter
# 创建一个新的工作簿
workbook = xlsxwriter.Workbook('test.xlsx')
# 添加一个工作表
worksheet = workbook.add_worksheet()
# 写入数据
worksheet.write('A1', 'Hello') # 使用单元格名称
worksheet.write(0, 1, 'World') # 第1行(索引0),第二列(索引1)
worksheet.write(2, 0, 123) # 第三行(索引2),第一列(索引0)
# 关闭工作簿(保存文件)
workbook.close()
from datetime import datetime
import xlsxwriter
# 创建一个新的工作簿
workbook = xlsxwriter.Workbook('test.xlsx')
# 添加一个工作表
worksheet = workbook.add_worksheet()
# 不同数据类型的写入
worksheet.write(0, 0, '文本字符串') # 字符串
worksheet.write(1, 0, 42) # 整数
worksheet.write(2, 0, 3.14159) # 浮点数
worksheet.write(3, 0, True) # 布尔值
worksheet.write(4, 0, None) # None值,excel中的单元格啥也不显示
# 日期时间
date_format = workbook.add_format({'num_format': 'yyyy-mm-dd'})
worksheet.write_datetime(5, 0, datetime(2023, 12, 25), date_format)
# 公式
worksheet.write_formula(6, 0, '=SUM(A2:A4)') # 求和公式
worksheet.write_formula(7, 0, '=AVERAGE(A2:A4)') # 平均值公式
worksheet.write_formula(8, 0, '2300')
# worksheet.write_formula(9, 0, '2,300') # 这一行会导致 excel 报错
workbook.close()
import xlsxwriter
# 创建一个新的工作簿
workbook = xlsxwriter.Workbook('test.xlsx')
# 添加一个工作表
worksheet = workbook.add_worksheet()
# 创建格式对象
bold_format = workbook.add_format({'bold': True})
red_format = workbook.add_format({'font_color': 'red'})
blue_bg_format = workbook.add_format({
'bg_color': '#ADD8E6',
'border': 1
})
number_format = workbook.add_format({'num_format': '#,##0.00'})
# 应用格式
worksheet.write('A1', '粗体文本', bold_format)
worksheet.write('A2', '红色文本', red_format)
worksheet.write('A3', '蓝色背景', blue_bg_format)
worksheet.write('A4', 2300, number_format)
# 合并单元格并添加格式
merge_format = workbook.add_format({
'bold': True,
'align': 'center',
'valign': 'vcenter',
'fg_color': 'yellow'
})
worksheet.merge_range('B2:D4', '合并单元格示例', merge_format)
workbook.close()
import xlsxwriter
# 创建一个新的工作簿
workbook = xlsxwriter.Workbook('test.xlsx')
# 添加一个工作表
worksheet = workbook.add_worksheet()
# 示例数据
data = [
['月份', '销售额'],
['一月', 1000],
['二月', 1200],
['三月', 900],
['四月', 1500],
['五月', 1800],
['六月', 1600]
]
# 写入数据
for row, row_data in enumerate(data):
for col, value in enumerate(row_data):
worksheet.write(row, col, value)
# 创建柱状图
chart = workbook.add_chart({'type': 'column'})
# 配置图表数据系列
chart.add_series({
'name': '=Sheet1!$B$1', # B1
'categories': '=Sheet1!$A$2:$A$7', # A2:A7
'values': '=Sheet1!$B$2:$B$7', # B2:B7
'fill': {'color': '#5B9BD5'},
})
# 设置图表标题和轴标签
chart.set_title({'name': '月度销售报告'})
chart.set_x_axis({'name': '月份'})
chart.set_y_axis({'name': '销售额'})
# 设置图表大小
chart.set_size({'width': 720, 'height': 480})
# 插入图表到工作表
worksheet.insert_chart('D2', chart)
workbook.close()
import xlsxwriter
# 创建一个新的工作簿
workbook = xlsxwriter.Workbook('test.xlsx')
# 添加一个工作表
worksheet = workbook.add_worksheet()
# 数据
data = [
['部门', '人数'],
['技术部', 45],
['市场部', 30],
['销售部', 25],
['人事部', 15],
['财务部', 10]
]
# 写入数据
for row, row_data in enumerate(data):
for col, value in enumerate(row_data):
worksheet.write(row, col, value)
# 创建饼图
chart = workbook.add_chart({'type': 'pie'})
# 配置数据系列
chart.add_series({
'name': '部门人数',
'categories': '=Sheet1!$A$2:$A$6',
'values': '=Sheet1!$B$2:$B$6',
'data_labels': {'percentage': True, 'category': True}
})
# 设置图表标题
chart.set_title({'name': '公司部门人数分布'})
# 插入图表
worksheet.insert_chart('D2', chart, {'x_offset': 25, 'y_offset': 10})
workbook.close()
import xlsxwriter
# 创建一个新的工作簿
workbook = xlsxwriter.Workbook('test.xlsx')
# 添加一个工作表
worksheet = workbook.add_worksheet()
# 设置列宽
worksheet.set_column('A:A', 20) # A 列宽度 20 字符
worksheet.set_column('B:D', 15) # B 到 D 列宽度 15 字符
worksheet.set_column(4, 6, 12) # E 到 G 列宽度 12 字符(索引方式)
# 设置行高
worksheet.set_row(0, 30) # 第 1 行高度 30 磅
worksheet.set_row(1, 25) # 第 2 行高度 25 磅
# 写入数据测试效果
worksheet.write('A1', '宽列内容测试')
worksheet.write('B1', '中等列宽')
worksheet.write('E1', '标准列宽')
workbook.close()
↶ 返回首页 ↶