我有一个5页的Excel文件(.xls格式),我想用我的熊猫数据框的内容替换5页的内容。
根据您的上述需求,您将需要同时使用Python(用于导出熊猫数据框)和VBA(用于删除现有工作表内容并复制/粘贴外部数据)。
使用Python:使用to_csv或to_excel方法。我建议使用to_csv方法,该方法对较大的数据集效果更好。
# DF TO EXCEL
from pandas import ExcelWriter
writer = ExcelWriter('PythonExport.xlsx')
yourdf.to_excel(writer,'Sheet5')
writer.save()
# DF TO CSV
yourdf.to_csv('PythonExport.csv', sep=',')
幸运的是,在VBA中,您可以使用Shell调用Python脚本(假设您的操作系统是Windows)。
Sub DataFrameImport()
'RUN PYTHON TO EXPORT DATA FRAME
Shell "C:\pathTo\python.exe fullpathOfPythonScript.py", vbNormalFocus
'CLEAR EXISTING CONTENT
ThisWorkbook.Worksheets(5).Cells.Clear
'COPY AND PASTE TO WORKBOOK
Workbooks("PythonExport").Worksheets(1).Cells.Copy
ThisWorkbook.Worksheets(5).Range("A1").Select
ThisWorkbook.Worksheets(5).Paste
End Sub
另外,您也可以反之亦然:使用Python运行宏(ClearExistingContent)。确保您的Excel文件是启用了宏的(.xlsm)文件,并且具有已保存的宏,只能删除工作表5的内容。注意:宏不能与csv文件一起保存。
import os
import win32com.client
from pandas import ExcelWriter
if os.path.exists("C:\Full Location\To\excelsheet.xlsm"):
xlApp=win32com.client.Dispatch("Excel.Application")
wb = xlApp.Workbooks.Open(Filename="C:\Full Location\To\excelsheet.xlsm")
# MACRO TO CLEAR SHEET 5 CONTENT
xlApp.Run("ClearExistingContent")
wb.Save()
xlApp.Quit()
del xl
# WRITE IN DATA FRAME TO SHEET 5
writer = ExcelWriter('C:\Full Location\To\excelsheet.xlsm')
yourdf.to_excel(writer,'Sheet5')
writer.save()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句