一、简介
xlswriter是一个为Python的Excel文件格式生成库,它可以让我们用Python编程生成XLS、XLSX、和ODS格式的Excel文档。它由John McNamara开发,是一个免费的、开源的、跨平台的软件。
二、安装
在通过pip在Python中安装xlswriter:
pip install XlsxWriter
如果你使用conda,你也可以使用conda进行安装:
conda install -c anaconda xlsxwriter
三、基本用法
1.创建一个简单的工作簿
首先,我们将创建一个简单的Excel工作簿并添加一些数据:
import xlsxwriter
# 新建一个工作簿
workbook = xlsxwriter.Workbook('example.xlsx')
# 新建一个sheet,并命名为'Mysheet'
worksheet = workbook.add_worksheet('Mysheet')
# 添加一个单元格,并写入一个文本值
worksheet.write('A1', 'Hello world')
# 保存工作簿
workbook.close()
这将创建一个Excel工作簿,名为example.xlsx,其中包含一个名为’Mysheet’的工作表,其中包含一个单元格,其中包含“Hello world”文本。
2.添加数据系列
通过以下示例向工作表添加一些数据系列来进一步深入了解基础知识:
import xlsxwriter
# 新建一个工作簿
workbook = xlsxwriter.Workbook('example2.xlsx')
# 新建一个sheet
worksheet = workbook.add_worksheet()
# 添加几个数字
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
# 开始从第0行和0列的单元格写入
row = 0
col = 0
# 在第0行上写入标题
worksheet.write(row, col, 'Item')
worksheet.write(row, col + 1, 'Cost')
# 用行列数据写入单元格
for item, cost in (expenses):
row += 1
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
# 写入总计
worksheet.write(row + 1, 0, 'Total')
worksheet.write(row + 1, 1, '=SUM(B1:B4)')
# 关闭excel文件
workbook.close()
这将创建另一个名为example2.xlsx的Excel工作簿。在工作簿中,我们有一个名为Sheet1的单独的工作表,其中包含四个数据系列:租金、燃油、食品和健身房。我们还在每行中添加了数字,以便在最后一行中显示数字总计。
3.设置单元格格式
我们可以通过XlsxWriter的格式化功能为Excel单元格添加颜色、字体、边框等格式:
import xlsxwriter
# 新建一个工作簿
workbook = xlsxwriter.Workbook('example3.xlsx')
# 新建一个sheet
worksheet = workbook.add_worksheet()
# 新建格式,设置背景颜色为红色
format1 = workbook.add_format({'bg_color': '#FFC7CE',
'font_color': '#9C0006'})
# 新建格式,设置背景颜色为绿色
format2 = workbook.add_format({'bg_color': '#C6EFCE',
'font_color': '#006100'})
# 设置列的宽度
worksheet.set_column(1, 1, 15)
# 这些是可以运行和编辑的数据 - 来自"Hello" + "World"
headings = ['Hello', 'World']
# 原始数据
data = [
[1, 2, 3, 4, 5, 6, 7, 8],
[2, 4, 6, 8, 10, 12, 14, 16]
]
# 写入数据和格式
for col_num, heading in enumerate(headings):
worksheet.write(0, col_num, heading, format1)
for row_num, row_data in enumerate(data):
worksheet.write_row(row_num + 1, 0, row_data, format2)
# 关闭Excel文件
workbook.close()
这将创建一个名为example3.xlsx的Excel工作簿。在此示例中,我们添加了一个包含两个列(Hello和World)和两个格式的单独工作表。第一列使用format1格式,其中背景颜色为红色,字体颜色为黑色,第二列使用format2格式,其中背景颜色为绿色,字体颜色为黑色。我们还设置了第二列的宽度为15,并通过调用write_row()方法将原始数据写入工作表。
4.添加图表
最后,我们将创建一个工作簿并使用XlsxWriter创建一个条形图。我们将根据以下数据系列生成图表:
import xlsxwriter
# 新建一个工作簿
workbook = xlsxwriter.Workbook('chart.xlsx')
# 新建一个sheet
worksheet = workbook.add_worksheet()
# 新建一个图表对象
chart = workbook.add_chart({'type': 'column'})
# 设置单元格格式
headings = ['Category', 'Values']
# Original data
data = [
['Apple', 'Cherry', 'Pumpkin', 'Chocolate', 'Blueberry'],
[10, 20, 30, 20, 15],
]
# 写入数据
worksheet.write_row('A1', headings)
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
# 添加数据系列来生成图表
chart.add_series({
'categories': '=Sheet1!$A$2:$A$6',
'values': '=Sheet1!$B$2:$B$6',
})
# 添加图表标题和标签
chart.set_title({'name': 'Fruit'})
chart.set_x_axis({'name': 'Fruit'})
chart.set_y_axis({'name': 'Amount'})
# 将图表放在工作表上以及指定一些布局和大小
worksheet.insert_chart('C2', chart, {'x_offset': 25, 'y_offset': 10})
workbook.close()
这将创建一个名为chart.xlsx的Excel工作簿,其中包含柱状图。我们使用add_chart()方法创建了一个column类型的图表对象。我们还使用数据系列中的项目和值来配置数据系列,设置图表标题和轴标签,以及通过指定图表大小和位置在工作表中插入图表。
四、结论
使用xlswriter可以轻松地在Python中生成Excel文档。我们可以使用它来编写脚本,减少手动操作,提高效率,同时使Python成为一个更好的工具。
原创文章,作者:SSVJQ,如若转载,请注明出处:https://www.506064.com/n/371874.html