pd.to_excle
对pandas处理后的数据生成excle 有很直接的办法 to_excle 不必再像xlrd之类的要一行一行的拼接数据,而是直接一份规整的数据转为一份excle
import pandas as pd
dir_name =/test/ #需存放的路径
#需注意每次生成excle时,对已经存在的同名文件会直接进行覆盖
#我后续的文件是程序中支持下载的,所以需要每次是一份新的
#需要的路径和文件名,未传路径的话会直接存在当前项目目录下
writer = pd.ExcelWriter(dir_name + test.xlsx')
pd_list = [] #待处理数据
pd_columns = [] #表格标题行
sheet_name = 'test'
pd_excle = pd.DataFrame(pd_list,colums=pd_columns)
#float_format科学计数法,index默认为Ture会在最左侧生成一列索引列,不需要的话False即可,header默认为0,从excle文件的第几行存入当前数据表,我传的1,因为后续要对表格加标题
pd_excle.to_excle(writer,sheet_name,float_format='%.5f',index=False,header=1)
ws = writer.sheets(sheet_name)
wb = writer.book
format = wb.add_format({'bold':Ture,'align':'center'}) #设置格式
data = '表格标题'
ws.merge_range('A1:H1',data,cell_format=format) #合并单元格设置单元格样式
writer.save()
#获取文件路径
path = writer.path
to_excle中具体的参数官方文档及各个博客都有较为详细的说明,可以按需所取,较为难找的是直接使用当前对象直接做合并单元格处理
merge_range方法需要传入的是六个参数,前四个是合并单元格的范围,'A1:D3'写成这样的格式后,只需传入一个参数,cell_format是需要传入的单元格格式,默认为None,对用的格式对象需用writer.book.add_format()方法,有兴趣的可以源码中看一下,该方法中默认有{'font_name': 'Arial', 'font_size': 10, 'theme': 1 * -1}三个,传入的参数都会被添加进去
链接中有对需要的格式设置的参数说明
The Format Class — XlsxWriter Documentation