python 中 xlsxwriter 模块的使用

本文介绍了Python的xlsxwriter模块,用于生成Excel表格并进行数据和图表操作。详细讲解了如何设置单元格格式、插入图表、调整图表样式、设置X轴Y轴属性等,提供丰富的示例代码,帮助开发者高效地创建专业级Excel文件。
摘要由CSDN通过智能技术生成

 

1.xlsxwriter 优点
1.1、功能比较强

相对而言,这是除Excel自身之外功能最强的工具了。比如我就用到了它提供的:字体设置、前景色背景色、
border设置、视图缩放(zoom)、单元格合并、autofilter、freeze panes、公式、data validation、
单元格注释、行高和列宽设置等等。

1.2、支持大文件写入

如果数据量非常大,可以启用constant memory模式,这是一种顺序写入模式,得到一行数据就立刻写入一行,
而不会把所有的数据都保持在内存中。


2.xlsxwriter 缺点
2.1、不支持读取和修改

作者并没有打算做一个XlsxReader来提供读取操作。不能读取,也就无从修改了。它只能用来创建新的文件。
我是利用xlrd把需要的信息读入后,用XlsxWriter创建全新的文件。

另外,即使是创建到一半Excel文件,也是无法读取已经创建出来的内容的(信息应该在,但是并没有相应的接口)。
因为它的主要方法是write而不是set。当你在某个单元格写入数据后,除非你自己保存了相关的内容,
否则还是没有办法读出已经写入的信息。从这个角度看,你无法做到读出->修改->写回,
只能是写入->写入->写入。

2.2、不支持XLS文件

XLS是Office 2013或更早版本所使用的格式,是一种二进制格式的文件。
XLSX则是用一系列XML文件组成的(最后的X代表了XML)一个压缩包。如果非要创建低版本的XLS文件,
就请移步xlwt吧。

2.3、暂时不支持透视表(Pivot Table)

 

1、xlsxwriter模块的简单使用:

     xlsxwriter模块主要用来生成excel表格,插入数据、插入图标等表格操作。

     1.1 基本功能

import xlsxwriter   #导入模块
 
workbook = xlsxwriter.Workbook('new_excel.xlsx')     #新建excel表
 
worksheet = workbook.add_worksheet('sheet1')       #新建sheet(sheet的名称为"sheet1")
 
headings = ['Number','testA','testB']     #设置表头
 
data = [
    ['2017-9-1','2017-9-2','2017-9-3','2017-9-4','2017-9-5','2017-9-6'],
    [10,40,50,20,10,50],
    [30,60,70,50,40,30],
]                                                              #自己造的数据
 
 
 
worksheet.write_row('A1',headings)
 
worksheet.write_column('A2',data[0])
worksheet.write_column('B2',data[1])
worksheet.write_column('C2',data[2])                   #将数据插入到表格中
 
 
workbook.close()          #将excel文件保存关闭,如果没有这一行运行代码会报错

 查看生成excel的结果:

 1.2 将excel中插入折线图     

import xlsxwriter                     #导入模块

workbook = xlsxwriter.Workbook('new_excel.xlsx')   #创建新的excel

worksheet = workbook.add_worksheet('sheet1')        #创建新的sheet

headings = ['Number','testA','testB']             #创建表头

data = [
    ['2017-9-1','2017-9-2','2017-9-3','2017-9-4','2017-9-5','2017-9-6'],
    [10,40,50,20,10,50],
    [30,60,70,50,40,30],
]                                                       #自己造的数据

worksheet.write_row('A1',headings)

worksheet.write_column('A2',data[0])
worksheet.write_column('B2',data[1])
worksheet.write_column('C2',data[2])                    #将数据插入到表格中

chart_col = workbook.add_chart({'type':'line'})        #新建图表格式 line为折线图
chart_col.add_series(                                   #给图表设置格式,填充内容
    {
        'name':'=sheet1!$B$1',
        'categories':'=sheet1!$A$2:$A$7',
        'values':   '=sheet1!$B$2:$B$7',
        'line': {'color': 'red'},
        'data_labels': {'value': True} #显示数字,就是直方图上面的数字,默认不显示
    }
)

chart_col.set_title({'name':'测试'})
chart_col.set_x_axis({'name':"x轴"})
chart_col.set_y_axis({'name':'y轴'})          #设置图表表头及坐标轴

chart_col.set_style(1)

worksheet.insert_chart('A10',chart_col,{'x_offset':25,'y_offset':10})   #放置图表位置

workbook.close()

 生成图表如下图:

 2、xlsxwriter模块常用功能介绍:

 2.1、设置单元格的格式:

 2.1.1、通过字典的方式直接设置格式:

workfomat = workbook.add_format({
    'bold':  True,                 #字体加粗
    'border':1,                    #单元格边框宽度
    'align':    'center',          #对齐方式
    'valign':   'vcenter',         #字体对齐方式
    'fg_color': '#F4B084',         #单元格背景颜色
    'text_wrap': True,              # 是否自动换行
})

2.1.2、通过format对象的方式设置单元格格式。

workfomat = workbook.add_format()
workfomat.set_bold(1)                #设置边框宽度
workfomat.set_num_format('0.00')     #格式化数据格式为小数点后两位
workfomat.set_a
  • 18
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值