- Python XlsxWriter 教程
- Python XlsxWriter - 主页
- Python XlsxWriter - 概述
- Python XlsxWriter - 环境设置
- Python XlsxWriter - 你好世界
- Python XlsxWriter - 重要类
- Python XlsxWriter - 单元格符号和范围
- Python XlsxWriter - 定义的名称
- Python XlsxWriter - 公式和函数
- Python XlsxWriter - 日期和时间
- Python XlsxWriter - 表格
- Python XlsxWriter - 应用过滤器
- Python XlsxWriter - 字体和颜色
- Python XlsxWriter - 数字格式
- Python XlsxWriter - 边框
- Python XlsxWriter - 超链接
- Python XlsxWriter - 条件格式
- Python XlsxWriter - 添加图表
- Python XlsxWriter - 图表格式
- Python XlsxWriter - 图表图例
- Python XlsxWriter - 条形图
- Python XlsxWriter - 折线图
- Python XlsxWriter - 饼图
- Python XlsxWriter - 迷你图
- Python XlsxWriter - 数据验证
- Python XlsxWriter - 大纲和分组
- Python XlsxWriter - 冻结和拆分窗格
- Python XlsxWriter - 隐藏/保护工作表
- Python XlsxWriter - 文本框
- Python XlsxWriter - 插入图像
- Python XlsxWriter - 页面设置
- Python XlsxWriter - 页眉和页脚
- Python XlsxWriter - 单元格注释
- Python XlsxWriter - 使用 Pandas
- Python XlsxWriter - VBA 宏
- Python XlsxWriter 有用资源
- Python XlsxWriter - 快速指南
- Python XlsxWriter - 有用的资源
- Python XlsxWriter - 讨论
Python XlsxWriter - 重要类
XlsxWriter 库由以下类组成。这些类中定义的所有方法都允许以编程方式对 XLSX 文件执行不同的操作。课程是 -
- 作业本类
- 工作表类
- 格式类
- 图表类
- 图表类
- 异常类
练习册班
这是 XlsxWriter 模块公开的主类,也是您需要直接实例化的唯一类。它代表写入磁盘上的 Excel 文件。
wb=xlsxwriter.Workbook('filename.xlsx')
Workbook 类定义了以下方法 -
先生编号 | 工作簿类别和说明 |
---|---|
1 | 添加工作表() 将新工作表添加到工作簿。 |
2 | 添加格式() 用于创建新的 Format 对象,该对象用于将格式应用于单元格。 |
3 | 添加图表() 创建一个新的图表对象,可以通过 insert_chart() Worksheet 方法插入到工作表中 |
4 | add_chartsheet() 将新图表表添加到工作簿。 |
5 | 关闭() 关闭 Workbook 对象并写入 XLSX 文件。 |
6 | 定义名称() 在工作簿中创建定义的名称以用作变量。 |
7 | 添加_vba_项目() 用于使用二进制 VBA 项目文件将宏或函数添加到工作簿。 |
8 | 工作表() 返回工作簿中的工作表列表。 |
工作表类
工作表类代表 Excel 工作表。此类的对象处理诸如将数据写入单元格或格式化工作表布局等操作。它是通过从Workbook()对象调用add_worksheet()方法创建的。
Worksheet 对象可以访问以下方法 -
写() |
将通用数据写入工作表单元格。 参数-
返回-
|
write_string() |
将字符串写入由行和列指定的单元格。 参数-
返回-
|
写数字() |
将数字类型写入由行和列指定的单元格。 参数-
返回-
|
写公式() |
将公式或函数写入由行和列指定的单元格。 参数-
返回-
|
插入图像() |
用于将图像插入到工作表中。图像可以是 PNG、JPEG、GIF、BMP、WMF 或 EMF 格式。 参数-
返回-
|
插入图表() |
用于将图表插入工作表中。图表对象是通过 Workbook add_chart() 方法创建的。 参数-
|
条件格式() |
用于根据用户定义的条件向单元格或单元格区域添加格式设置。 参数-
返回-
|
添加表() |
用于将一系列单元格分组到 Excel 表格中。 参数-
|
自动过滤器() |
在工作表中设置自动筛选区域。它将下拉列表添加到二维工作表数据范围的标题中。用户可以根据简单的标准过滤数据。 参数-
|
格式类
格式对象是通过调用工作簿add_format()方法创建的。该对象可用的方法和属性与字体、颜色、图案、边框、对齐方式和数字格式有关。
字体格式化方法和属性 -
方法名称 | 描述 | 财产 |
---|---|---|
设置字体名称() | 字体类型 | '字体名称' |
设置字体大小() | 字体大小 | '字体大小' |
设置字体颜色() | 字体颜色 | '字体颜色' |
设置粗体() | 大胆的 | '大胆的' |
设置斜体() | 斜体 | ‘斜体’ |
设置下划线() | 强调 | '强调' |
设置字体删除线() | 三振 | '字体删除线' |
设置字体脚本() | 上标/下标 | '字体脚本' |
对齐格式设置方法和属性
方法名称 | 描述 | 财产 |
---|---|---|
设置对齐() | 水平对齐 | '对齐' |
设置对齐() | 垂直对齐 | 'valign' |
设置旋转() | 回转 | '回转' |
set_text_wrap() | 文本换行 | '文本换行' |
设置阅读顺序() | 阅读顺序 | '阅读顺序' |
set_text_justlast() | 最后证明合理 | 'text_justlast' |
set_center_across() | 中心横跨 | '中心_交叉' |
设置缩进() | 缩进 | ‘缩进’ |
set_shrink() | 缩小以适合 | '收缩' |
图表类
图表对象是通过指定图表类型的 Workbook 对象的add_chart()方法创建的。
chart = workbook.add_chart({'type': 'column'})
通过调用insert_chart()方法将图表对象插入到工作表中。
worksheet.insert_chart('A7', chart)
XlxsWriter 支持以下图表类型 -
区域- 创建区域(实心线)样式图表。
bar - 创建条形样式(转置直方图)图表。
柱- 创建柱形(直方图)图表。
line - 创建线条样式图表。
pie - 创建饼图样式图表。
甜甜圈- 创建甜甜圈样式图表。
scatter - 创建散点样式图表。
stock - 创建股票样式图表。
雷达- 创建雷达样式图表。
Chart 类定义了以下方法 -
添加系列(选项) |
将数据系列添加到图表中。可以给出以下属性 -
|
设置x轴(选项) |
设置图表 X 轴选项,包括
|
设置 y 轴(选项) |
设置图表 Y 轴选项,包括 -
|
设置大小() |
该方法用于设置图表的尺寸。可以通过设置宽度和高度或设置x_scale和y_scale来修改图表的大小。 |
设置标题(选项) |
设置图表标题选项。 参数-
|
设置图例() |
此方法使用以下属性格式化图表图例 -
|
图表类
XLSX 文件中的图表表是仅包含图表而不包含其他数据的工作表。通过从 Workbook 对象调用add_chartsheet()方法来创建新的图表对象 -
chartsheet = workbook.add_chartsheet()
Chartsheet类的一些功能与数据工作表的功能类似,例如选项卡选择、页眉、页脚、边距和打印属性。但是,其主要目的是显示单个图表,而普通数据工作表可以包含一个或多个嵌入图表。
图表数据必须出现在单独的工作表中。因此,它总是使用set_chart()方法与至少一个数据工作表一起创建。
chartsheet = workbook.add_chartsheet() chart = workbook.add_chart({'type': 'column'}) chartsheet.set_chart(chart)
请记住,图表表只能包含一个图表。
例子
以下代码将数据系列写入名为sheet1的工作表中,但打开一个新的图表工作表以根据sheet1中的数据添加柱形图。
import xlsxwriter wb = xlsxwriter.Workbook('hello.xlsx') worksheet = wb.add_worksheet() cs = wb.add_chartsheet() chart = wb.add_chart({'type': 'column'}) data = [ [10, 20, 30, 40, 50], [20, 40, 60, 80, 100], [30, 60, 90, 120, 150], ] worksheet.write_column('A1', data[0]) worksheet.write_column('B1', data[1]) worksheet.write_column('C1', data[2]) chart.add_series({'values': '=Sheet1!$A$1:$A$5'}) chart.add_series({'values': '=Sheet1!$B$1:$B$5'}) chart.add_series({'values': '=Sheet1!$C$1:$C$5'}) cs.set_chart(chart) cs.activate() wb.close()
输出
异常类
XlsxWriter 识别各种运行时错误或异常,可以使用 Python 的错误处理技术捕获这些错误或异常,从而避免 Excel 文件损坏。XlsxWriter 中的 Exception 类如下 -
先生编号 | 异常类和描述 |
---|---|
1 |
XlsxWriter异常 XlsxWriter 的基本异常。 |
2 | Xlsx文件错误 所有文件相关错误的基本异常。 |
3 | Xlsx输入错误 所有输入数据相关错误的基本异常。 |
4 | 文件创建错误 如果将 xlsx 文件写入磁盘或文件已在 Excel 中打开时出现文件权限错误或 IO 错误,则会发生此情况。 |
5 | 未定义图像大小 如果图像不包含高度或宽度信息,则使用insert_image()方法引发。在 Workbook close()期间引发异常。 |
6 | 不支持的图像格式 如果图像不是受支持的文件格式之一,则引发该错误:PNG、JPEG、GIF、BMP、WMF 或 EMF。 |
7 | 空图表系列 当将图表添加到没有数据系列的工作表时,会出现此异常。 |
8 | 无效的工作表名称 如果工作表名称太长或包含无效字符。 |
9 | 重复工作表名称 当工作表名称已存在时,会引发此异常。 |
文件创建错误异常
假设已使用 Excel 应用程序打开名为hello.xlsx的工作簿,则以下代码将引发FileCreateError -
import xlsxwriter workbook = xlsxwriter.Workbook('hello.xlsx') worksheet = workbook.add_worksheet() workbook.close()
当该程序运行时,错误消息显示如下 -
PermissionError: [Errno 13] Permission denied: 'hello.xlsx' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "hello.py", line 4, in <module> workbook.close() File "e:\xlsxenv\lib\site-packages\xlsxwriter\workbook.py", line 326, in close raise FileCreateError(e) xlsxwriter.exceptions.FileCreateError: [Errno 13] Permission denied: 'hello.xlsx'
处理异常
我们可以使用Python的异常处理机制来达到这个目的。
import xlsxwriter try: workbook = xlsxwriter.Workbook('hello.xlsx') worksheet = workbook.add_worksheet() workbook.close() except: print ("The file is already open")
现在将显示自定义错误消息。
(xlsxenv) E:\xlsxenv>python ex34.py The file is already open
异常空图表系列
另一种情况是在图表中添加数据系列时引发异常。
import xlsxwriter workbook = xlsxwriter.Workbook('hello.xlsx') worksheet = workbook.add_worksheet() chart = workbook.add_chart({'type': 'column'}) worksheet.insert_chart('A7', chart) workbook.close()
这会导致 EmptyChartSeries 异常 -
xlsxwriter.exceptions.EmptyChartSeries: Chart1 must contain at least one data series.