当前位置: 首页 > 后端技术 > Python

Python模块:XlsxWriter的使用

时间:2023-03-26 11:04:42 Python

1.安装XlsxWriter使用命令:pip3installxlsxwriter2.验证是否安装成功新建一个.py文件,输入如下代码:importxlsxwriterworkbook=xlsxwriter.Workbook('hello.xlsx')worksheet=workbook.add_worksheet()worksheet.write('A1','Helloworld')workbook.close()运行程序,会发现在同一目录下生成了一个hello.xlsx文件:xlsx文件,找到如下内容,说明安装成功:3.创建一个简单的XLSX文件假设我们有一些每月的支出数据,我们想把它转换成一个ExcelXLSX文件:expenses=(['Rent',1000],['Gas',100],['Food',300],['Gym',50],)下面是代码:importxlsxwriter#Createaworkbookandaddaworksheet.#Createaworkbookandaddaworksheetworkbook=xlsxwriter.Workbook('Expenses01.xlsx')worksheet=workbook.add_worksheet()#我们要写入工作表的一些数据。#我们想要的数据t写入工作表expenses=(['Rent',1000],['Gas',100],['Food',300],['Gym',50],)#从第一个单元格开始。行和列的索引为零。#从第一个单元格开始,行和列的索引为0row=0col=0#遍历数据并逐行写出。#遍历数据并逐行写出排。对于项目,成本(费用):worksheet.write(row,col,item)worksheet.write(row,col+1,cost)row+=1#用公式写一个总和。#写一个公式计算总和worksheet.write(row,0,'Total')worksheet.write(row,1,'=SUM(B1:B4)')workbook.close()运行程序,看到生成了Expenses01.xlsx文件,打开看到如下内容:4.代码详解下面开始详细讲解上面的程序代码第一步导入包:importxlsxwriter使用Workbook()创建工作簿,参数为工作簿名称:workbook=xlsxwriter.Workbook('Expenses01.xlsx')注意:XlsxWriter只能创建文件,不能读取或修改现有文件。然后使用add_worksheet()添加一个工作表:worksheet=workbook.add_worksheet()默认工作表的名称为Sheet1、Sheet2等,也可以指定名称:worksheet1=workbook.add_worksheet()#DefaultstoSheet1.worksheet2=workbook.add_worksheet('Data')#Data.worksheet3=workbook.add_worksheet()#默认为Sheet3。我们使用worksheet对象通过write()方法写入数据:worksheet.write(row,col,some_data)注意:在XlsxWriter中,行和列都是零索引的。第一个单元格A1是(0,0)。在上面的代码中,通过迭代将数据写入表中:#遍历数据,逐行写出。#遍历数据并逐行写出。foritem,costin(expenses):worksheet.write(row,col,item)worksheet.write(row,col+1,cost)row+=1添加公式对第二列中的项目求和:worksheet.write(row,1,'=SUM(B1:B4)')最后,使用close()方法关闭Excel文件:workbook.close()现在,生成了一个可以被Excel和其他电子表格应用程序读取的xlsx文件.5.将不同类型的数据写入XLSX文件前面的程序使用Python和XlsxWriter模块创建了一个简单的电子表格格式。本次扩充要写入的数据,包括一些日期:expenses=(['Rent','2013-01-13',1000],['Gas','2013-01-14',100],['Food','2013-01-16',300],['Gym','2013-01-20',50],)这里的区别是增加了一个带格式的日期列,并且列稍宽以适应日期。所以,代码如下:fromdatetimeimportdatetimeimportxlsxwriter#创建一个workbook,添加一个worksheet.workbook=xlsxwriter.Workbook('Expenses03.xlsx')worksheet=workbook.add_worksheet()#添加一个粗体格式用来高亮显示cells.#为突出显示单元格添加粗体格式bold=workbook.add_format({'bold':1})#为有钱的单元格添加数字格式。#为有显式钱的单元格添加数字格式money_format=workbook.add_format({'num_format':'$#,##0'})#添加Excel日期格式。#添加Excel日期格式date_format=workbook.add_format({'num_format':'mmmmdyyyy'})#调整列宽。#调整列宽worksheet.set_column(1,1,15)#写入一些数据headers.worksheet.write('A1','Item',bold)worksheet.write('B1','Date',bold)worksheet.write('C1','Cost',bold)#我们要写入工作表的一些数据。expenses=(['Rent','2013-01-13',1000],['Gas','2013-01-14',100],['Food','2013-01-16',300],['Gym','2013-01-20',50],)#从第一个单元格开始在headers.row=1col=0项下方,date_str,costin(expenses):#将日期字符串转换为日期时间对象。date=datetime.strptime(date_str,"%Y-%m-%d")worksheet.write_string(row,col,item)worksheet.write_datetime(row,col+1,date,date_format)worksheet.write_number(行,col+2,cost,money_format)row+=1#用公式写总和.worksheet.write(row,0,'Total',bold)worksheet.write(row,2,'=SUM(C2:C5)',money_format)workbook.close()这个程序和前面的程序的区别在于,为日期添加了一个新的Format对象,数据类型有额外的处理Excel对不同类型的输入数据进行处理,比如字符串和数字,通常是不同的,尽管通常对用户是透明的。XlsxWriter视图通过将Python数据类型映射到Excel支持的数据类型,使用worksheet.write()方法对此进行模拟。write()方法作为几个更具体的方法的通用别名:数据类型:worksheet.write_string(row,col,item)worksheet.write_datetime(row,col+1,date,date_format)worksheet.write_number(row,col+2,cost,money_format)这个主要是为了展示你是否需要更多地控制您写入工作表的数据,并且您可以使用适当的方法。在这个简单的示例中,write()方法实际上运行良好。日期处理也是该程序的新功能。Excel中的日期和时间是应用了数字格式的浮点数,以便以正确的格式显示它们。如果日期和时间是Python日期时间对象,则XlsxWriter会自动执行所需的数字转换。但是,我们还需要添加数字格式以确保Excel将其显示为日期:fromdatetimeimportdatetime...date_format=workbook.add_format({'num_format':'mmmmdyyyy'})...foritem,date_str,costin(expenses):#将日期字符串转换为日期时间对象。date=datetime.strptime(date_str,"%Y-%m-%d")...worksheet.write_datetime(row,col+1,date,date_format)...最后需要set_column()来调整宽度调整B列宽度,使日期显示清晰:#调整列宽.worksheet.set_column('B:B',15)运行程序,看到Expenses03生成.xlsx文件,打开看到如下:6.ReferenceTutorial教程1:创建一个简单的XLSX文件——XlsxWriter文档教程3:将不同类型的数据写入XLSX文件——Python中的XlsxWriter文档模块——XlsxWriter-简书(简书.com)