Python xlsxwriter
最后修改于 2024 年 1 月 29 日
Python xlsxwriter 教程展示了如何使用 xlsxwriter 在 Python 中写入 Excel xlsx 文件。
xlsxwriter
xlsxwriter
是一个 Python 库,用于写入 Excel 2007+ XLSX 文件格式的文件。
Excel xlsx
在本文中,我们使用 xlsx 文件。xlsx 是 Microsoft Excel 使用的开放 XML 电子表格文件格式的文件扩展名。xlsm 文件支持宏。xls 格式是专有的二进制格式,而 xlsx 基于 Office Open XML 格式。
$ pip install xlsxwriter
我们使用 pip
工具安装 xlsxwriter
。
Python xlsxwriter 第一个示例
下面的程序创建一个简单的 Excel 文件。
#!/usr/bin/python import xlsxwriter wb = xlsxwriter.Workbook('first.xlsx') ws = wb.add_worksheet() ws.write('A1', 'misty mountains') ws.write(2, 0, 123) wb.close()
在示例中,我们将数据写入两个单元格。
import xlsxwriter
我们导入模块。
wb = xlsxwriter.Workbook('first.xlsx')
创建了一个新的工作簿。工作簿是文档所有其他部分的容器。参数是 Excel 文件的名称。
ws = wb.add_worksheet()
我们使用 add_worksheet
添加一个新的工作表。
ws.write('A1', 'misty mountains') ws.write(2, 0, 123)
我们写入两个单元格。识别单元格有两种基本方法。Excel 键 A1 表示工作表的左上角单元格。在第二种情况下,前两个参数是单元格的行和列。索引从零开始。
wb.close()
最后,我们关闭文件。
Python write_xlsx 写入数据
有各种方法可以将数据写入工作表。
#!/usr/bin/python from datetime import datetime import xlsxwriter import datetime wb = xlsxwriter.Workbook('writing.xlsx') ws = wb.add_worksheet() ws.set_column('A:A', 25) ws.write_string('A1', 'misty mountains') ws.write_number(1, 0, 123) ws.write_url('A3', 'http://webcode.me') df = wb.add_format({'num_format': 'dd/mm/yy'}) ws.write_datetime('A4', datetime.datetime.now(), df) ital = wb.add_format({'italic': True}) bold = wb.add_format({'bold': True}) cent = wb.add_format({'align': 'center'}) ws.write_rich_string('A5', bold, 'an old falcon ', ital, 'wild river', cent) ws.write_boolean('A6', True) wb.close()
在示例中,我们写入了一个数字、一个字符串、一个 URL、一个日期时间、一个富文本字符串和一个布尔值。
ws.set_column('A:A', 25)
我们使用 set_column
扩大第一列。宽度以字符为单位设置。
ws.write_string('A1', 'misty mountains') ws.write_number(1, 0, 123)
使用 write_string
写入字符串;使用 write_number
写入数字。
ws.write_url('A3', 'http://webcode.me')
使用 write_url
写入 URL。
df = wb.add_format({'num_format': 'dd/mm/yy'}) ws.write_datetime('A4', datetime.datetime.now(), df)
使用 write_datetime
写入日期时间。我们还指定了日期时间格式。
ital = wb.add_format({'italic': True}) bold = wb.add_format({'bold': True}) cent = wb.add_format({'align': 'center'}) ws.write_rich_string('A5', bold, 'an old falcon ', ital, 'wild river', cent)
使用 add_format
,我们创建了三个格式单元。使用 write_rich_string
写入富文本字符串。格式应用于相邻的文本。最后一个格式(在我们的例子中是 cent)应用于整个文本。
ws.write_boolean('A6', True)
最后,使用 write_boolean
写入布尔值。
Python xlsxwriter write_row & write_column
要写入一列数据,我们使用 write_column
方法。要写入一行数据,我们使用 write_row
方法。
#!/usr/bin/python import xlsxwriter wb = xlsxwriter.Workbook('rows_cols.xlsx') ws = wb.add_worksheet() vals = [12, 14, 25, 29, 19, 35] ws.write_column('A1', vals) ws.write_row(8, 0, vals) wb.close()
我们有一个整数列表。我们将这些整数写入单列和单行。
将数据存储在字典中是很常见的。
#!/usr/bin/python import xlsxwriter wb = xlsxwriter.Workbook('dics.xlsx') ws = wb.add_worksheet() sales = {'Product A': [104, 411, 122, 345], 'Product B': [ 807, 913, 932, 567], 'Product C': [89, 91, 82, 88]} cn = 0 for k, v in sales.items(): ws.write(0, cn, k) ws.write_column(1, cn, v) cn += 1 wb.close()
在示例中,我们写入存储在字典中的数据。
sales = {'Product A': [104, 411, 122, 345], 'Product B': [ 807, 913, 932, 567], 'Product C': [89, 91, 82, 88]}
我们有一个 Python 字典中三个产品的销售情况。
cn = 0 for k, v in sales.items(): ws.write(0, cn, k) ws.write_column(1, cn, v) cn += 1
我们遍历字典,将每个字典项打印在一列中,将键作为标题,将值作为列数据。
Python xlsxwriter merge_range
merge_range
函数合并一个单元格范围。其参数是左上角和右下角单元格的行和列、要写入的数据以及可选的单元格格式。
#!/usr/bin/python import xlsxwriter wb = xlsxwriter.Workbook('merging.xlsx') ws = wb.add_worksheet() mf = wb.add_format({'align': 'center', 'valign': 'vcenter'}) ws.merge_range(1, 1, 2, 2, 'an old falcon', mf) ws.merge_range('E5:G6', 'misty mountains', mf) wb.close()
在示例中,我们合并了两组单元格。
Python xlsxwriter insert_image
使用 insert_image
方法将图像插入工作表。
#!/usr/bin/python import xlsxwriter wb = xlsxwriter.Workbook('image.xlsx') ws = wb.add_worksheet() ws.write('A1', 'Sid, the sloth') ws.insert_image('A3', 'sid.jpg') wb.close()
该示例将 JPEG 图像插入单元格。
Python xlsxwriter write_formula
使用 write_formula
写入公式。请注意,必须重新计算工作表才能使其正常工作。
#!/usr/bin/python import xlsxwriter vals = [12, 32, 12, 4, 99, 78] wb = xlsxwriter.Workbook('formula.xlsx') ws = wb.add_worksheet() for idx, e in enumerate(vals): ws.write_number(idx, 0, e) ws.write_formula(7, 0, '=SUM(A1:A6)') wb.close()
该示例将 SUM
公式写入单元格,该公式计算 A 列值的总和。
来源
使用 Python 和 XlsxWriter 创建 Excel 文件
在本文中,我们使用了 xlsxwriter 库。我们使用 xlsxwriter 创建了一些基本的 Excel 文件。
作者
列出所有 Python 教程。