python处理excel文件,python xlsxwriter 一文初掌握_m0_71437598的博客-爱代码爱编程
前言
本篇博客继续探索 Python 操作 Excel 的相关模块,此次我们要研究的模块是 xlsxwriter ,希望学习完毕能对你有所帮助。
模块安装
pip install xlsxwriter
安装完毕,直接在文件中进行模块导入,测试是够存在BUG。
import xlsxwriter
该模块看名字就能知道其用法,它是用来向 Excel 中写入数据的模块,其中限制 Excel 版本为2007+。
模块基本使用
接下来完成一个基本的流程,创建文件并写入数据
import xlsxwriter
# 创建工作簿
workbook = xlsxwriter.Workbook('测试.xlsx')
# 添加工作表
worksheet = workbook.add_worksheet()
# 写入hello world 到 A1 单元格
worksheet.write('A1', 'Hello World')
# 关闭Excel文件
workbook.close()
代码的流程为创建工作簿,创建工作表,写入数据到指定单元格。
写入更多样式数据
上述案例是最简单的应用,我们可以对其进行扩展,添加更多的样式。
相关注释已经写到代码中,可以配合注释进行学习。
import xlsxwriter
# 创建工作簿
workbook = xlsxwriter.Workbook('测试.xlsx')
# 创建工作表
worksheet = workbook.add_worksheet('测试Sheet')
# 设置单一列宽度
worksheet.set_column('A:A', 20)
# 设置加粗样式
bold = workbook.add_format({'bold': True})
# 写入数据 A1
worksheet.write('A1', 'Hello')
# 写入数据 A2
worksheet.write('A2', 'world', bold)
# 写入数据 B1
worksheet.write('B1', u'世界你好')
workbook.close()
上表中关于设置列宽的函数 set_column() ,可扩展学习的函数有:
- worksheet.set_column(“A:B”, 15):依据列名设置区域列宽度;
- worksheet.set_column(“0:1”, 15) :依据索引更新列宽度;
- worksheet.set_row(1, 30):设置单一行高度。
其余样式扩展
上文仅设置了一个加粗样式,你可以对其它样式进行配置
# 设置列头样式
head_format = workbook.add_format({
'bold': True, # 字体加粗
'border': 1, # 单元格边框宽度
'align': 'left', # 对齐方式
'valign': 'vcenter', # 字体对齐方式
'fg_color': '#03A9F4', # 单元格背景颜色
'font_size': 12 # 字体大小
})
除了整体配置外,也可以使用对象方法的形式进行设置,设置完毕之后的用法就是在 worksheet.write() 方法中携带该参数。
workfomat = workbook.add_format()
workfomat.set_bold(1) # 设置加粗
workfomat.set_border(1) # 设置边框
workfomat.set_num_format('0.00') # 格式化数据格式为小数点后两位
workfomat.set_align('center') # 设置水平对齐方式
workfomat.set_bg_color('#ff0000') # 设置单元格前景色
# 设置加粗样式
bold = workbook.add_format({'bold': True})
# 写入数据 A1
worksheet.write('A1', 'Hello', workfomat)
xlsxwriter 中的 write 方法
除了 write() 方法以外,该模块还存在一些扩展方法,具体如下
-write_string():写入字符串;
- write_number():写入数字;
- write_blank():将带有格式的空白字符写入工作表单元格,仅保留单元格样式。
- write_formula():写入公式;
- write_datetime():写入时间;
- write_boolean():写入布尔值;
- write_url():写入链接。
还有一些未罗列,可以参考下图:
如果希望插入图片,参考下述代码即可
# 插入图片,参数1为单元格,参数2为图片地址
worksheet.insert_image('B2','cup_PNG2001.png')
xlsxwriter 关闭文件
在操作 Excel 文件之后,记住一定要关闭文件,代码如下:
workbook.close()
其它需要了解的方法
xlsxwriter 模块还存在一些函数,很多时候可以辅助我们进行代码编写。
- write_row(row, col, data, cell_format=None):列固定,写入数据;
- write_column(row, col, data, cell_format=None):行固定,写入数据;
- insert_textbox(row, col, text, options=None):单元格写入文本框
- insert_chart(row, col, chart, options=None):插入图表;
- activate():设置活跃工作表;
- merge_range(first_row, first_col, last_row,last_col,data,
- cell_format=None):合并单元格;
- conditional_format(first_row, first_col, last_row, last_col,options=None):条件格式;
xlsxwriter 模块的优缺点
优点
写入功能非常全
除了基本设置以外,字体设置、前景色、背景色、边框设置、单元格合并、公式、单元格注释、行高设置、列宽设置……
xlsxwriter支持大文件写入
在数据量特别大的情况下,可以启用 constant memory 模式,即可开始逐行即时写入功能,从而避免数据一次性读取到内存中。
缺点
不支持读取和修改 Excel 文件
看名字就能之后,xlsxwriter 是写入数据的模块,所以其不能读取 Excel 文件。
不支持XLS文件
xlsxwriter 不支持创建 xls 后缀结尾的 excel 文件。
不支持透视表(Pivot Table)
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(文末获取!)
温馨提示:篇幅有限,已打包文件夹,获取方式在“文末”!!!
二、Python必备开发工具
三、精品Python学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、Python练习题
检查学习结果。
七、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。