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中产生错误
有什么想法吗?我错过了什么明显的东西吗?我仍在使用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']