以前,业务分析对应的英文单词是BusinessAnalysis,大家使用的分析工具是Excel。后来数据量大,Excel处理不了(Excel支持的最大行数为1048576行),人们开始转向python、R等分析工具。XlsxWriterxlrd&xlwtOpenPyXLMicrosoftExcelAPI介绍可以创建Excel2007或更高版本的XLSX文件,即python-excel,包括三个模块xlrd、xlwt和xlutils,分别提供读写等功能,可以读写Excel2007的XLSX和XLSM文件通过COM组件直接与MicrosoftExcel进程通信,调用它的各种函数来实现对Excel文件的操作读取????写入????修改slowSystemUnlimitedUnlimitedUnlimitedWindows+Excel使用场景创建XLSX文件
无需读取现有文件
需要实现更复杂的功能
数据量可能较大
需要跨平台阅读XLS或XLSX文件
生成XLS文件
需要的功能不是太复杂
需要跨平台处理XLSX文件
现有文件需要修改,或者需要不断修改在编写过程中
需要的功能比较复杂
数据量可能会非常大
需要跨平台处理各种文件格式
需要用到特别复杂的功能
修改文件时,不想对原有信息造成任何意外破坏
数据量小,还是愿意等
只能在Windows下使用XlsxWriter。可以完成xlsx文件的自动构建,包括:合并单元格,制作excel图表等功能:一、优点1、相对来说,这是除了Excel本身之外最强大的工具。例如,我使用了它提供的:字体设置、前景色和背景色、边框设置、视图缩放(缩放)、单元格合并、自动过滤、冻结窗格、公式、数据验证、单元格注释、行高和列宽设置等2.支持大文件写入。如果数据量很大,可以开启constantmemorymode,这是一种顺序写入的方式。当你得到一行数据时,你会立即写入一行,而不会将所有数据保存在内存中。二、缺点1、不支持读取和修改。作者无意做一个XlsxReader来提供阅读操作。如果无法读取,则无法修改。它只能用于创建新文件。在我使用xlrd读取所需信息后,我使用XlsxWriter创建一个新文件。另外,即使创建了一半的Excel文件,也无法读取已经创建的内容(信息应该有,只是没有相应的界面)。因为它的主要方法是write而不是set。当你在单元格中写入数据后,除非你自己保存相关内容,否则仍然无法读取写入的信息。从这个角度来说,不能读->修改->写回,只能写->写->写。2.不支持XLS文件XLS是Office2013或更早版本使用的格式,是二进制格式的文件。XLSX是由一系列XML文件(最后一个X代表XML)组成的压缩包。如果您必须创建较低版本的XLS文件,请移至xlwt。3.暂时不支持数据透视表(PivotTable)3.基本操作方法创建excel文件importxlsxwriterf=xlsxwriter.Workbook()#创建excel文件创建工作表worksheet1=f.add_worksheet('operationlog')#中括号为工作表名称添加工作表样式样式有很多属性。更具体的样式可以参考官方文档https://xlsxwriter.readthedocs.io。bold=f.add_format({'bold':True,#boldfont'border':1,#cellborderwidth'align':'left',#horizo??ntalalignment'valign':'vcenter',#verticalAlignment'fg_color':'#F4B084',#单元格背景色'text_wrap':True,#是否自动换行})写入单个单元格数据//row:行,col:列,data:待写入数据,bold:的样式cellworksheet1.write(row,col,data,bold)writeawholerow,awholecolumn//A1:insertdatafromcellA1,insertbyrow,data:写入数据(格式为列表),粗体:单元格的样式worksheet1.write_row("A1",data,bold)//A1:从A1单元格插入数据,按列插入,data:要写入的数据(格式为列表),bold:该styleofthecellworksheet1.write_column("A1",data,bold)插入图片//第一个参数是要插入的起始单元格,第二个参数是你文件路径的绝对值worksheet1.insert_image('A1','f:\\1.jpg')写入超链接worksheet1.write_url(row,col,"internal:%s!A1"%("要关联的工作表名称"),string="超链接显示的名称")在图表工作簿中插入类型。add_chartsheet(type="")参数指图表类型,图表类型示例如下:[area:面积图,bar:条形图,column:直方图,doughnut:环形图,line:折线图,pie:饼图,scatter:散点图,雷达:radarchart,stock:boxplot]获取当前excel文件的所有工作表workbook.worksheets()workbook.worksheets()用于获取当前工作簿中的所有工作表。这个函数的存在方便了工作表的循环操作。在单元格中输入一个字符创建'Helloxlsxwriter',那么这个命令就派上用场了关闭excel文件workbook.close()这个命令是最后一个使用xlsxwriter操作Excel的命令,一定要记得关闭文件。参考https://www.jianshu.com/nb/32...caseimportxlsxwriter#新建一个excelsheetworkbook=xlsxwriter.Workbook('D:/hello.xlsx')#新建一个sheet(名称sheet的是"sheet1")worksheet=workbook.add_worksheet()#定义header内容Title=['实例ID','实例配置','实例名称','Region','SecurityGroup','EIP']#定义标题格式merge_format=workbook.add_format({'bold':True,'border':1,'align':'center','valign':'vcenter','fg_color':'#E0FFFF'})#定义标题格式title_format=workbook.add_format({'bold':True,'border':1,'align':'center','valign':'vcenter','fg_color':'#87CEFF'})#定义内容格式data_format=workbook.add_format({'border':1,'align':'center','valign':'vcenter','fg_color':'#EED8AE'})#准数据data=[['i-1','1C1G','demo1','上海','sg-1','172.20.2.10'],['i-2','1C1G','demo2','郑州','sg-2','172.20.2.11'],['i-3','1C1G','demo3','北京','sg-3','172.20.2.12']]#合并A1-F1单元格为标题,传入参数:1:合并单元格,2:标题文本,3:标题格式worksheet.merge_range('A1:F1','ECS信息表',merge_format)#设置列宽,指定A-F的列宽为25worksheet.set_column('A:F',25)#设置行号,指定行数,高度,A1为0,A2为1,依此类推onworksheet.set_row(0,60)#write_row,writerow,传入参数:1:row,2:content,3:formatworksheet.write_row('A2',Title,title_format)i=3forECSindata:worksheet.write_row('A'+str(i),ECS,data_format)i+=1#保存并关闭excel文件,如果没有这行代码运行会报错workbook.close()在线实践:https://www.520mg.com/it
