excel表格_excel函数公式大全_execl从入门到精通
「前置知识之xlsxwriter模块」写入Excel基本流程及模块简单应用2024-02-28 22:17:31
前面章节,介绍了xlwt模块在写入Excel中的一些常用操作。其实,xlwt这个模块在处理Excel的过程中,优点并不多,缺点倒是不少。今天,我们来介绍另一款比xlwt更好用的模块—xlsxwriter。
今天的内容我们简单介绍下xlsxwriter这个模块的使用流程。文末,我们通过一个案例来回顾所学内容。
为什么要用xlsxwriter模块
原因有下面几点:
比较xlwt支持更多的Excel功能,是xlwt的加强版100%兼容Excel文件,不存在版本差异不兼容的问题(兼容Excel 2003、 Excel 2007等版本)处理Excel文件的速度比xlwt更快,支持大文件写入,占用内存空间小xlwt有行数限制,而xlsxwriter几乎突破了这个限制,它可以处理1048576行数据、16384条记录表格中可以支持插入很多类型的图片(PNG/JPEG/GIF/BMP/WMF/EMF)、图表(散点、雷达……)等集成pandas后续,我们会将这些特点一一举例说明。
基于上述原因,建议小伙伴们使用这个模块替代xlwt模块。但跟其它模块,比如openpyxl相比,它也有缺点,比如,xlsxwriter这个模块只能写,不能读取和编辑Excel文件。
xlsxwriter模块使用流程
下面,我们介绍如何使用这个模块,并按步骤创建一个Excel文件。
【导入模块】
对于任何一个第三方模块,使用前,我们先执行导入操作。
import xlsxwriter
其实,xlsxwriter这个模块同xlwt很像,甚至很多方法名称都是一样的。比如,创建一个Workbook对象。
【创建一个工作簿对象】
workbook = xlsxwriter.Workbook("test.xlsx")
这里的文件名称是必须要传入的参数,否则保存时会提示出错。
AttributeError: 'NoneType' object has no attribute 'write'
当然,这里不用担心版本问题,使用“*.xlsx”和“*.xls”文件名都可以。
然后,我们在工作簿里面创建工作表。
【创建工作表】
worksheet = workbook.add_worksheet()
这里方法内传入一个表名称,如果不传入,则默认命名为“Sheet1”。
【写入内容】
然后向工作表中写入一些内容,方法基本上同xlwt模块一样。
worksheet.write(0, 0, '这是一些测试内容!')
效果如下
写入内容如何为单元格写入格式呢?
【写入格式】
这里的格式包含很多内容,比如单元格的边框、字体大小、颜色等等,我们后文会有很详尽的介绍,这里不再赘述。通常使用下面方法来写入。需要注意的是,这里的写入格式方法是Workbook对象实例的一个方法。
formatname = workbook.add_format({"bold": True}) # 这里添加了一个字体加粗的格式
然后,我们可以在写入内容时,调用这个格式。
worksheet.write(0, 0, '这是一些测试内容!', formatname)
应用格式后,效果如下:
写入格式文本进行了加粗显示。
【保存Excel】
通常情况下,上面两幅图的效果我们是看不到的。除非我们调用这个workbook的close方法,该方法会保存我们的内容即格式。
workbook.close()
上面几个简单的步骤,我们创建了一个工作簿,并在工作簿中添加表格,向表格写入内容和格式,然后保存。试想,我们一般使用Excel是不是按照这个步骤呢?
现在,你可以利用编码创建一个自己的工作簿,并向里面写入一些有意思的内容了。
下面,我们对比学习一下xlsxwriter和xlwt这两个模块在创建Excel时的方法。
xlwt和xlsxwriter使用对比
下面,我们对比学习下xlwt和xlsxwriter这两个模块。
上面提供了一些方法的对比。
需要注意的是,xlsxwriter这个模块扩充了一些功能:
【单元格定位】
在单元格定位时,提供了一种更加便捷的方法。可以使用“字母+数字”(如:A1)的方式来定位单元格。
比如,上面的ws.write(0, 0, "这是一个测试内容!", fname)
可以写成:ws.write("A1", "这是一个测试内容!", fname)
类似Excel的单元格定位标识方式,更加灵活。来看一个简单的例子。
举个例子
接上文的例子,我们将1990年到2019年全国各省份人口数据提取出来,按照省份进行归类并写入一个Excel工作表中。源代码及人口数据下载方式见文末。
原始表格是这样,如下图所示:
原始表格按要求,我们将每个省份的年度人口数据提取到单独的表格中,如下图:
效果图现在我们来实现这个案例。
购买专栏解锁剩余17%
标签: excel保存显示有不兼容格式