一般来说,我们使用to_excel()函数,得到一个没有任何格式的Excel文件,但是我们又想设置一下字体,条件格式等,可以使用 xlwt 一个一个写进去,但是如果数据特别多,效率就很慢。
我们想这样实现:先设置一个格式文件,然后再格式刷一下。
查询资料,得到如下方法:
import pandas as pd import numpy as np import re import datetime import warnings warnings.filterwarnings("ignore") import time import pythoncom from PIL import ImageGrab import win32com from win32com.client import Dispatch,constants import os os.system('taskkill /IM EXCEL.exe /F') import shutil #复制文件格式例子副本:是设计好格式的文件,复制文件格式例子06是最终输出文件,复制文件格式例子是需要复制格式的文件 risk_df =shutil.copyfile('xxx/复制文件格式例子副本.xlsx','xxx/复制文件格式例子06.xlsx') pythoncom.CoInitialize()# 自动调度必须执行代码 xlapp2 = win32com.client.gencache.EnsureDispatch('Excel.Application') wkb = xlapp2.Workbooks.Open(risk_df) wkb_tmp = xlapp2.Workbooks.Open('xxx/复制文件格式例子.xlsx') wkb_tmp.Worksheets('Sheet1').Range('A1:C5').Copy() wkb.Worksheets('Sheet1').Select wkb.Worksheets('Sheet1').Range('A1').PasteSpecial(Paste = constants.xlPasteValues,Operation = constants.xlNone) wkb.Save() wkb.Close() wkb_tmp.Save() wkb_tmp.Close() print('done',datetime.datetime.now())
固定格式的文件:复制文件格式例子副本.xlsx 如下:
需要复制格式的文件:复制文件格式例子.xlsx
最终输出文件:复制文件格式例子06.xlsx
最终效果不错,方法好使。
如报这个错误
AttributeError: module 'win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x8' has no attribute 'CLSIDToClassMap'
解决网址:https://blog.csdn.net/Saladbobo/article/details/103381335