学习-xlsxwriter模块
Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,numbers,formulas 公式以及hyperlinks超链接。
可以完成xlsx文件的自动化构造,包括:
合并单元格,制作excel图表等功能:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import xlsxwriter # Create an new Excel file and add a worksheet. workbook = xlsxwriter.Workbook( 'demo.xlsx' ) #创建工作簿 worksheet = workbook.add_worksheet() #创建工作表 # Widen the first column to make the text clearer. worksheet.set_column( 'A:A' , 20 ) #设置一列或者多列单元属性 # Add a bold format to use to highlight cells. bold = workbook.add_format({ 'bold' : True }) #在工作表中创建一个新的格式对象来格式化单元格,实现加粗 # Write some simple text. worksheet.write( 'A1' , 'Hello' ) #工总表写入简单文本 # Text with formatting. worksheet.write( 'A2' , 'World' , bold) #工作表写入带有格式的文本,加粗 # Write some numbers, with row/column notation. #按照坐标写入 worksheet.write( 2 , 0 , 123 ) worksheet.write( 3 , 0 , 123.456 ) # Insert an image. worksheet.insert_image( 'B5' , 'logo.png' ) #插入图片 workbook.close() #关闭工作薄 |
安装方式:pip install XlsxWriter
方法详细解释:
1.workbook类
定义:Workbook(filename[,options])
该类创建一个XlsxWriter的Workbook对象。Workbook代表整个电子表格文件,并且存储在磁盘上。filename为字符串类型,表示创建的excel文件存储路径;
1 | options:为dict类型,是可选参数,一般作为初始化工作表内容格式 |
add_worksheet
add_worksheet([sheetname])方法,用于添加一个新的工作表,sheetname为工作表名称,默认是sheet1,例如:
1 2 3 4 | worksheet1 = workbook.add_worksheet() #sheet1 worksheet2 = workbook.add_worksheet( 'test' ) #test worksheet3 = workbook.add_worksheet( 'data' ) #data worksheet4 = workbook.add_worksheet() #sheet4 |
add_format
add_format([properties])方法,用于在工作表中创建一个新的格式对象来格式化单元格
1 | properties:为dict类型,为指定一个格式属性的字典 |
例如设置一个加粗的格式对象如下:
1 2 3 4 | bold = workbook.add_format({ 'bold' : True}) 等价的语句如下: bold = workbook.add_format() bold.set_bold() |
add_chart
add_chart(options)方法,用于在工作表中创建一个图表对象,内部是通过insert_chart()方法来实现的,参数为dict类型,是为图标指定一个字典属性。
例如设置一个线条行的图表对象,代码如下:
1 | chart = workbook.add_chart({ 'type' : 'line' })1 |
close
close()方法,作用是关闭工作表文件,如:
1 | workbook.close() |
2.Worksheet类
代表一个excel工作表,是比较核心的一个类。Worksheet对象不能直接实例化,而是通过Workbook对象调用add_worksheet()方法来创建,常见的方法如下:
write
write(row, col, *args)方法:是用来将普通数据写入单元格中。
1 2 3 | row:行坐标; col:列坐标; 坐标索引起始值为0 *args:无名字参数为数据内容,可为数字,公式,字符串或格式对象 |
为了简化不同数据类型的写入过程,write方法已作为其他更加具体的数据类型方法的别名,如:
1 2 3 4 5 6 7 | write.string():写入字符串类型数据 wirte_number():写入数字型数据 write_blank():写入空类型数据 write_formula():写入公式型数据 write_datetime():写入日期型数据 wirte_boolean():写入逻辑型数据 write_url():写入超链接型数据 |
set_row
set_row(row, height, cell_format, options)方法,用于设定行单元格的属性。
1 2 3 4 | row:指定行位置,起始下标为0; height:为float类型,设定行高,单位像素; cell_format: format 类型,指定对象格式; options,字典类型,设置行hidden(隐藏)、level(组合分级)、collpsed(折叠) |
示例如下:
1 2 3 4 | worksheet2.write( 'A1' , 'hello' ) bold = workbook.add_format({ 'bold' : True}) # 设定A1行高40,加粗 worksheet2.set_row(0, 40, bold) # 隐藏第二行 worksheet2.set_row(1, None, None, { 'hidden' : True}) |
set_column
set_column(first_col, last_col, width, cell_format, options)方法,用于设置一列或多列单元格的属性
1 2 3 4 5 | first_col:整型,指定开始列位置,起始下标为0; last_col:整型,指定结束列位置,起始下标为0; width:float类型,设置列宽; cell_format: format 类型,指定格式对象; options:dict类型,设置hidden(隐藏)、level(组合分级)、collpsed(折叠); |
示例如下:
1 2 3 4 5 6 7 | worksheet2.write( 'A1' , 'hello' ) worksheet2.write( 'B1' , 'world' ) bold = workbook.add_format({ 'bold' : True}) # 设定列A到B单元格宽度10像素,加粗 worksheet2.set_column(0, 1, 10, bold) # 设置C到D单元格宽度20像素 worksheet2.set_column( 'C:D' , 20) 隐藏E到G单元格 worksheet2.set_column( 'E:G' , None, None, { 'hidden' : 1}) |
insert_image
insert_image(row, col, image[, options])方法,用于插入图片到指定的单元格,支持PNG,JPEG,BMP等多种格式。
1 2 3 4 | row:行坐标,起始索引值为0; col:列坐标,起始索引值为0; image:string类型,是图片路径; options:dict类型,是可选参数,用于指定图片位置,如URL等信息; |
示例如下:
1 2 | # 在B5单元格插入python-logo.png图片,超链接为http://python.org worksheet1.insert_image( 'B5' , 'img/python-logo.png' , { 'url' : 'http://python.org' })12 |
chart类
chart类实图表组件,支持包括面积、条形图、柱状图、折线图、散点图等,一个图表对象是通过Workbook的add_chart方法创建,通过{type, ‘图表类型’}字典来制定图表类型,示例如下:
1 2 | # 创建一个column(柱形)图表 chart = workbook.add_chart({ type , 'column' })12 |
常见的图表样式如下:
1 2 3 4 5 6 7 8 | area:面积样式的图表 bar:条形图 column:柱状图 line:线条样式的图表 pie:饼形图 scatter:散点图 stock:股票样式的图表 radar:雷达样式的图表 |
然后通过Worksheet的insert_chart()方法插入到指定位置,示例如下:
几个常用方法如下:
add_series
chart.add_series(options)方法:用于添加一个数据系列的图表,参数options为字典类型,用于设置图表系列选项的字典,示例如下:
1 2 3 4 5 | chart.add_series({ 'categories' : '=Sheet1!$A$1:$A$5' , 'values' : '=Sheet1!$B$1:$B$5' , 'line' : { 'color' : 'red' }, })12345 |
add_series的常用三个选项:
1 2 3 | categories:设置图表类别标签范围; values:设置图表数据范围; line:设置图表线条属性,包括宽度、颜色等; |
set_x_axis
set_x_axis(options)方法,设置图表X轴选项,示例如下:
1 2 3 4 5 6 | chart.set_x_axis({ 'name' : 'x name' , 'name_font' : { 'size' : 14, 'bold' : True} 'num_font' : { 'italic' : True} })12345 name:设置x轴名称; name_font:设置x轴字体; num_font:设置x轴数字字体属性; |
set_size
set_size(options)方法,用于设置图表大小,示例如下:
1 | chart.set_size({ 'width' : 720, 'height' : 576})1 |
1 2 | width:设置宽度; height:设置高度; |
set_title
set_title(options)方法,设置图表标题,示例如下:
1 | chart.set_title({ 'name' : 'test' })1 |
set_style
set_style(style_id)方法,用于设置图表样式,style_id为不同数字代表不同样式,示例如下:
1 | chart.set_style(37)1 |
set_table
set_table(options)方法,设置x轴为数据表格式。示例如下:
1 | chart.set_table() |
微信

支付宝

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类