Python 熊猫:使用to_excel写入现有excel文件(xlsx)

Python 熊猫:使用to_excel写入现有excel文件(xlsx),python,pandas,openpyxl,Python,Pandas,Openpyxl,我有一个简单的df.to_excel()用例,我正在努力解决这个问题。我想写入现有XLSX工作簿的特定工作表选项卡(我们称之为“数据”),其他选项卡上的公式和轴可以引用该选项卡 我尝试用两种方法修改ExcelWriter,但都会从openpyxl中产生错误 使用get_sheet_by_name读取现有工作表(此错误:“NotImplementedError:改用'iter_rows()”) 使用“创建图纸”创建新图纸。(此错误为:“ReadOnlyWorkbookException:无法在只读

我有一个简单的
df.to_excel()
用例,我正在努力解决这个问题。我想写入现有XLSX工作簿的特定工作表选项卡(我们称之为“数据”),其他选项卡上的公式和轴可以引用该选项卡

我尝试用两种方法修改ExcelWriter,但都会从openpyxl中产生错误

  • 使用get_sheet_by_name读取现有工作表(此错误:“NotImplementedError:改用'iter_rows()”)
  • 使用“创建图纸”创建新图纸。(此错误为:“ReadOnlyWorkbookException:无法在只读工作簿中创建新工作表”)


  • 有什么想法吗?我错过了什么明显的东西吗?我仍在使用pandas 7.2

    加载工作簿时,使用
    使用迭代器=True
    ,然后在
    工作簿
    对象上设置优化的读取(),从而导致以只读方式加载

    因此,使用以下代码:

    from openpyxl.reader.excel import load_workbook
    
    book = load_workbook('t.xlsx', use_iterators=False) # Assume t.xlsx contains ['Data', 'Feuil2', 'Feuil3']
    print book.get_sheet_names()
    
    
    class temp_excel_writer():
        def __init__(self, path, book):
            self.book=book
            test_sheet=self.book.create_sheet(title='Test') # No exception here now
            self.book.save(path)
            self.use_xlsx = True
            self.sheet_names=self.book.get_sheet_names()
            print self.sheet_names
            self.actual_sheets=self.book.worksheets
            self.sheets={}
            for i,j in enumerate(self.sheet_names):
                self.sheets[j] = (self.actual_sheets[i],1)
            self.cur_sheet = None
            self.path = path # I had to modify this line also
    
    my_temp_writer = temp_excel_writer('my_excel_file.xlsx', book)
    
    它创建一个名为
    my\u excel\u file.xlsx的文件,并输出以下内容:

     ['Data', 'Feuil2', 'Feuil3']
     ['Data', 'Feuil2', 'Feuil3', 'Test']
    
    希望能有帮助

     ['Data', 'Feuil2', 'Feuil3']
     ['Data', 'Feuil2', 'Feuil3', 'Test']