Данные отсутствуют, формат изменен в файле .xlsx, имеющем несколько листов с использованием панд, openpyxl при добавлении нового листа в существующий файл .xlsx - PullRequest
0 голосов
/ 29 августа 2018

У меня есть Final.xlsx, который содержит несколько листов - shee1, sheet2 ,sheet3, каждый из которых имеет несколько графиков и данных. У меня есть другой файл file5.xlsx, который я хочу добавить в Final.xlsx на вкладке. Приведенный ниже код работает, но данные существующих листов Final.xlsx пропускаются (содержимое, форматы, grpahs и другие). нужна помощь, чтобы исправить это.

    import pandas
    from openpyxl import load_workbook

    book = load_workbook('foo.xlsx')
    writer = pandas.ExcelWriter('foo.xlsx', engine='openpyxl') 
    writer.book = book
    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
    df1=pd.read_excel('file5.xlsx')
    df1.to_excel(writer, "new",index=False)

    writer.save()

1 Ответ

0 голосов
/ 29 августа 2018

Внутренне Pandas использует библиотеку xlrd для чтения файлов xlsx. Эта библиотека быстрая, но, поскольку она по существу связана с поддержкой формата BIFF, ее поддержка OOXML ограничена. Видя, что Панды ничего не знают о графиках, они все равно не могли их удержать.

openpyxl предоставляет утилиты в openpyxl.utils.dataframe для перехода между строками XLSX и Pandas Dataframes, предоставляя вам полный контроль при работе, сохраняя почти все остальное в вашем файле. В вашем случае, однако, вам даже не нужны Pandas, поскольку вы можете просто зациклить ячейки из файла file5.xlsx и скопировать их в другой файл.

...