XlsxWriter,一款强大的Python Excel处理库
我用Python处理Excel使用最多的库是XlsxWriter和PandasPandas不用多说很适合将Excel转为DataFrame格式来处理数据。这里重点讲讲XlsxWriter非常擅长写入Excel。它在github上有近4K的star在众多Excel库中可能也是最好用最容易上手的它支持创建、写入、公式、图表设计、可视化、格式处理等各种Excel操作。XlsxWriter最好用的点在于它不依赖其他库或者Excel引擎单纯靠Python标准库执行任务所以安装简单、速度快、出错率低、环境适应性强。而且XlsxWriter非常适合Excel大数据的写入因为它有一种特殊的“常量内存”管理模式可以一边写入新数据一边删除内存的中旧数据不会占用内存因此可以支持超大数据量的处理。安装XlsxWriter很简单直接在命令行中输入pip install XlsxWriter由于没有依赖库XlsxWriter安装非常快安装好后使用import导入便可以使用。比如以下几行代码可以轻松创建一个excel表然后写入一列数据并使用这列数据创建一个折线图速度非常之快。import xlsxwriter # 要输入的数据 data [12,15,18,20,17,14] # 创建工作簿和工作表 workbook xlsxwriter.Workbook(示例.xlsx) worksheet workbook.add_worksheet() # 写入数据 worksheet.write_column(A1, data) # 创建新的折线图对象 chart workbook.add_chart({type: line}) # 向图表添加数据系列 chart.add_series({values: Sheet1!$A$1:$A$6}) # 将图表插入工作表 worksheet.insert_chart(C1, chart) # 关闭xlsx文件 workbook.close()效果如下要学会XlsxWriter需要知道XlsxWriter有3个基础对象。Workbook工作薄用于创建Excel文件通过方法xlsxwriter.Workbook()实现。Worksheet工作表用于创建Excel中的某个sheet通过workbook.add_worksheet()实现。Format格式化用于设置单元格格式的方法和属性比如字体、颜色、图案、边框、对齐方式和数字格式等通过workbook.add_format()实现。比如以下案例就解释了以上3个对象的使用方法创建一个Excel表及其sheet并写入A1单元数值和设置格式。import xlsxwriter # 创建Excel workbook xlsxwriter.Workbook(set_format.xlsx) # 创建sheet worksheet workbook.add_worksheet() # 设置单元格格式 currency_format workbook.add_format({ num_format: $#,##0.00, # 数字格式 bold: True, # 字体加粗 font_name: 微软雅黑, # 设置字体名称 bg_color: orange # 设置单元格背景颜色为橙色 }) worksheet.write(A1, 789.23, currency_format) workbook.close()可能你经常会用Pandas导出Excel但Pandas对Excel的处理能力很有限所以可以使用XlsxWriter作为引擎导出格式更加丰富、有图表的Excel。使用方法很简单import pandas as pd # 创建df数据 df pd.DataFrame({Data: [10, 20, 30, 20, 15, 30, 45]}) # 使用XlsxWriter作为引擎创建excel写入对象 writer pd.ExcelWriter(pandas_simple.xlsx, enginexlsxwriter) # 导出excel df.to_excel(writer, sheet_nameSheet1) # 对excel对象进行各种操作 workbook writer.book worksheet writer.sheets[Sales Data] ...... writer.close()比如我用pandas处理一份上百万行的销售数据最终输出时使用XlsxWriter设计一份报表有表有图可以直接作为业务表使用。因为XlsxWriter是将数据保存在内存中的如果需要写入的数据量很大连内存都扛不住了XlsxWriter有专门的内存管理模式可以处理。它的处理机制时写入新的数据时在内存中删除旧的数据这样内存不会被一直占用还能保证数据可以持续写入。你可以在创建 Workbook 对象时设置constant_memory参数来启用内存管理模式workbook xlsxwriter.Workbook(large_file.xlsx, {constant_memory: True})可以看到XlsxWriter非常的简单但却很强大搭配Pandas来用效果更好最后放一个使用xlsxwriter做的商业化看板一键导出非常方便。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2414031.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!