Pythonxlsxwriter教程展示了如何使用Python使用xlsxwriter编写Excelxlsx文件。
xlsx编写器
xlsxwriter是一个Python库,用于编写Excel2007+XLSX文件格式的文件。
Excelxlsx
在本教程中,我们使用xlsx文件。xlsx是MicrosoftExcel使用的开放式XML电子表格文件格式的文件扩展名。xlsm文件支持宏。xls格式是专有的二进制格式,而xlsx是基于OfficeOpenXML格式。
$ pip install xlsxwriter
我们使用pip
工具安装xlsxwriter
。
Pythonxlsxwriter第一个例子
以下程序创建一个简单的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()
最后,我们关闭文件。
Pythonwrite_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')
一个URL是用write_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
编写丰富的字符串。一种格式应用于相邻的文本。最后一种格式(在我们的例子中是分)应用于整个文本。
ws.write_boolean('A6', True)
最后用write_boolean
写入一个boolean值。
Pythonxlsxwriterwrite_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
我们检查字典并在单个列中打印每个字典项目,将键作为标题,将值作为列数据。
Pythonxlsxwriter合并范围
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()
在示例中,我们合并了两组单元格。
Pythonxlsxwriter插入图像
使用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图像插入单元格。
Pythonxlsxwriterwrite_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列的值的总和。
在本教程中,我们使用了xlsxwriter库。我们已经使用xlsxwriter创建了一些基本的Excel文件。
访问Python教程或列出所有Python教程。