xlswriter:Python下的Excel文件生成模块

一、简介

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
SSVJQSSVJQ
上一篇 2025-04-23 18:08
下一篇 2025-04-23 18:08

相关推荐

  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29

发表回复

登录后才能评论