2017-03-15 5 views
2

ピボットテーブルを1つの列に配置し、2番目のシートの詳細を配置しようとしています。しかし、詳細シートはxlsxwriterによって上書きされています。xlsxwriterが前のシートを上書きする

pivot = pd.pivot_table(df2, index=['Customer_Name'], values=['Billed_Net_Value', 'Sales_Order_Net_Value', 'Open_Amount'], aggfunc=np.sum) 
writer = pd.ExcelWriter('SAP.xlsx', engine='xlsxwriter') 
pivot.to_excel(writer, sheet_name='Pivot') 
writer.save() 

filename = 'SAP.xlsx' 
workbook = xlsxwriter.Workbook(filename) 
worksheet = workbook.add_worksheet('Detail') 

答えて

1

あなたの例ではWorkbook()コンストラクタはパンダで作成したファイルを上書きし、新しいファイルを作成します。

あなたはこのように、他のワークシート名をto_excel()を呼び出すことができワークブックに他のデータフレームを追加したい場合は、次の

writer = pd.ExcelWriter('SAP.xlsx', engine='xlsxwriter') 

pivot.to_excel(writer, sheet_name='Pivot') 
df2.to_excel(writer, sheet_name='Sheet2') 
writer.save() 

あなたはXlsxWriter APIを使用してワークシートを追加したい場合は、次のようにあなたがそれを行うことができます:

writer = pd.ExcelWriter('SAP.xlsx', engine='xlsxwriter') 

pivot.to_excel(writer, sheet_name='Pivot') 

workbook = writer.book 
worksheet = workbook.add_worksheet('Detail') 
writer.save() 

はXlsxWriterのドキュメントにもWorking with Pandas参照してください。

2

私はあなたが単に.save()コールを延期することによってこれを行うことができると思います。

pivot = pd.pivot_table(df2, index=['Customer_Name'], values=['Billed_Net_Value', 'Sales_Order_Net_Value', 'Open_Amount'], aggfunc=np.sum) 
writer = pd.ExcelWriter('SAP.xlsx', engine='xlsxwriter') 
pivot.to_excel(writer, sheet_name='Pivot') 
df2.to_excel(writer, sheet_name='Detail') 
writer.save() 
+0

動作しませんでした。シートを上書きします。 – nomad

関連する問題