开放的编程资料库

当前位置:我爱分享网 > Python教程 > 正文

Python xlsxwriter

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教程。

未经允许不得转载:我爱分享网 » Python xlsxwriter

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏