ExcelWriter没有输出

时间:2019-11-18 22:41:10

标签: python excel pandas

我正在尝试使用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()

0 个答案:

没有答案