python – 熊猫数据框到Excel表

我有一个excel文件(.xls格式)与5张,我想替换表5的内容与我的熊猫数据框的内容.
根据您的上述需求,您将需要使用Python(导出熊猫数据框)和VBA(删除现有工作表内容并复制/粘贴外部数据).

使用Python:使用to_csvto_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:copypaste源到目的地范围.

幸运的是,在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)的文件,其中保存的宏仅删除Sheet 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() 

转载注明原文:python – 熊猫数据框到Excel表 - 代码日志