首页 > 解决方案 > ExcelWriter 没有输出

问题描述

我正在尝试使用 ExcelWriter 用从另一个文件读取的数据框替换/更新 Excel 工作簿中的工作表。如果我只是df.to_excel()用来写出文件,它会按预期工作,但我也想将所有其他工作表保留在接收工作簿中。

我已经尝试了以下代码的几种不同迭代,但无论我使用 ExcelWriter 做什么,我的接收文件都不会更新或修改。

注意: 如果有影响,我尝试更新的工作表已经存在。也许我的 tkinter 小部件弄乱了这个过程,但如前所述,这个过程适用于一个简单的 df.to_excel() 命令。

代码:

import openpyxl
from openpyxl import load_workbook
import tkinter
from tkinter import filedialog
from tkinter import *
import xlrd
import pandas as pd



def openMasterFile():
    root = Tk()
    root.withdraw()
    global masterfile
    masterfile =  filedialog.askopenfilename(initialdir = "C:\\Users\\...",
                                             title = "Select master file", parent=root)
    root.destroy()

#open new data
def openNewFile():
    root=Tk()
    root.withdraw()
    global newfile
    newfile =  filedialog.askopenfilename(initialdir = "C:\\Users\\...",
                                          title = "Select new file", parent=root)
    root.destroy()



openMasterFile()
openNewFile()

data = pd.read_excel(newfile, "Partners")

book = openpyxl.load_workbook(masterfile)
with pd.ExcelWriter(masterfile,  engine='openpyxl') as writer:
    writer.book = book
    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
    data.to_excel(writer, sheet_name="Partners", engine='xlsxwriter', index=False)
    writer.save()

标签: pythonexcelpandas

解决方案


推荐阅读