python excel 自动化

时间:2022-10-31 12:29

python怎么让excel自动化呢?不知道的小伙伴来看看小编今天的分享吧!

python操作excel的相关工具包可以具体到操作指定单元格的填充样式、数值类型、数值大小等等。
1、从指定文件路径读取excel表格,进行一定操作,然后保存到另一个excel文件:result.xlsx

importxlwtimportxlrdfromxlutils.copyimportcopyimportpandasaspdfrompandasimportDataFrame,Seriesimportosos.chdir('./')#从指定文件路径读取excel表格df=pd.read_excel('D:/mypaper/data/data.xlsx')#查看df内容#根据age算出出生年份,增加一列importdatetimeimportosyear=datetime.datetime.now().year#获取当前系统时间对应的年份df['birth']=year-df['age']df.to_excel('result.xlsx')#保存到当前工作目录,可以用os.getcwd()查看#查看下此时df的内容,可以看到已经生成了birth这一列

2、单元格操作

#定义方法:读取指定目录下Excel文件某个sheet单元格的值defexcel_read(file_path,table,x,y):data=xlrd.open_workbook(file_path)table=data.sheet_by_name(table)returntable.cell(y,x).value#定义方法:单元格值及样式write_obj_list=[]defconcat_obj(cols,rows,value):write_obj_list.append({'cols':cols,'rows':rows,'value':value,\'style':xlwt.easyxf('font:name宋体,height280;alignment:horizcentre')})#定义方法:合并单元格defmerge_unit(srows,erows,scols,ecols,value):write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,\'ecols':ecols,'value':value,'style':xlwt.easyxf('font:name宋体,height280;alignment:horizcentre')})#定义方法:更新excelexcel_update(file_path,write_obj_list,new_path):old_excel=xlrd.open_workbook(file_path,formatting_info=True)#管道作用new_excel=copy(old_excel)'''通过get_sheet()获取的sheet有write()方法'''sheet1=new_excel.get_sheet(0)'''1代表是修改第几个工作表里,从0开始算是第一个。此处修改第一个工作表'''foriteminwrite_obj_list:if'id'notinitem.keys():if'style'initem.keys():sheet1.write(item['rows'],item['cols'],item['value'],item['style'])else:sheet1.write(item['rows'],item['cols'],item['value'])else:if'style'initem.keys():sheet1.write_merge(item['srows'],item['erows'],item['scols'],item['ecols'],item['value'],item['style'])else:sheet1.write_merge(item['srows'],item['erows'],item['scols'],item['ecols'],item['value'])'''如果报错dict_itemshasnoattributessort把syle源码中--alist.sort()修改为---->sorted(alist)一共修改2次'''new_excel.save(file_path)#参数详解#srows:合并的起始行数#erows:合并的结束行数#scols:合并的起始列数#ecols:合并的结束列数#value:合并单元格后的填充值#style:合并后填充风格:#font:name宋体#height280;#alignment:horizcentre#...与excel操作基本保持一致

注意:

1、该方法仅仅是将需要直行的动作保存到一个list中,真正的动作还未执行,执行动作是发生在excel_update方法中,最终调用excel_update方法,传入每个单元格需要进行的操作和填充值的write_obj_list以及文件保存路径file_path。就可以在当前工作目录下生成想要的Excel结果文件。

python excel 自动化

2、write_obj_list支持用户自定义
3、write_obj_list也可以是根据excel_read方法读取现有待修改的excel文件(可以维持原有表格的格式)而生成

以上就是小编今天的分享了,希望可以帮助到大家。

标签:
随便看看
本类推荐
本类排行
热门标签

我国国家通讯社行不行啊细狗新年贺词祝福语2023年祝福语新年新年贺词新年贺词祝福语居家抗病毒小药箱除夕高速免费吗2022年除夕高速免费吗春联春联句子大全春联句子大全七字年夜饭十二道菜年夜饭十二道菜单年夜饭吃什么年夜饭吃什么菜吃年夜饭的寓意年夜饭黑芝麻菊花茶晒菊花茶腌腊肉送妈妈生日礼物汉白玉送闺蜜水钻送女人礼物爸爸生日送礼物送老公