python之DataFrame实现结果数据生成excle

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}三个,传入的参数都会被添加进去

链接中有对需要的格式设置的参数说明
https://xlsxwriter.readthedocs.io/format.html

再附上一份文档说明
https://pandas.pydata.org/pandas-docs/stable/reference/frame.html
 

 

你可能感兴趣的:(python之DataFrame实现结果数据生成excle)