2017-03-15 74 views
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()構造函數創建其覆蓋在大熊貓創建該文件的新文件。

如果你想其他dataframes添加到工作簿,你可以調用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