def test(sheet, row=2):
writer = pd.ExcelWriter("testing.xlsx", engine='openpyxl')
df1 = pd.DataFrame(['Title'], index=[0])
df2 = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000]})
df1.to_excel(writer, sheet, startrow=0, startcol=0, header=None, \
index=False)
df2.to_excel(writer, sheet, startrow=row, index=False)
writer.save()
writer.close()
test('aaa')
Actuellement, cette petite fonction crée une seule feuille de calcul Excel.Afficher ci-dessous une feuille de calcul de contenu existant
Description:
On suppose que la feuille Excel existe. Je veux écrire quelque chose d'autre ci-dessous les lignes existantes avec le code suivant.
In [1]: import pandas as pd
In [2]: writer = pd.ExcelWriter("testing.xlsx", engine='openpyxl')
In [4]: from openpyxl import load_workbook
In [5]: book = load_workbook("testing.xlsx")
In [6]: df3 = pd.DataFrame({'amount': ['Chest', 'Bras', 'Braa'],
...: 'income': [40000, 50000, 42000]})
...:
In [8]: writer.book = book
In [9]: ws = book.get_sheet_by_name('aaa')
In [10]: writer.book
Out[10]: <openpyxl.workbook.workbook.Workbook at 0x7f9add4e3048>
In [12]: writer.book.sheetnames
Out[12]: ['aaa']
In [13]: row = ws.max_row
In [14]: row
Out[14]: 6
In [15]: df3.to_excel(writer, "aaa", startrow=row + 2, index=False)
In [16]: writer.save()
Ce code fonctionnait presque comme je le voulais. Il crée une nouvelle feuille de travail aaa1
et place le contenu de df
à la 8ème ligne comme il se doit normalement. Au lieu de créer la nouvelle feuille aaa1
, je veux que le contenu de aaa1
soit ci-dessous le contenu de aaa
. Comment pourrais-je résoudre cela pour que cela fonctionne?