我有一个名为CustomerSales的工作簿,在两个工作表中都有两个Excel工作表,分别名为sheet1和sheet2,因此我需要在特定的列值中写入/更改值,所以我使用了。
if (data.at[g, 'failedColumn'] == '' and data.at[g, 'reason'] == ''):
data.at[g, 'status'] = 'Fail'
data.at[g, 'failedColumn'] = 'BUKRS'
data.at[g, 'reason'] = 'Customer Not Extended To Any Company code'
data.to_excel(variable)//*variable-path to excel file
这里的数据是sheet1的数据框,代码在这里工作得很好,结果excel文件已更新了列值
但是,当我尝试使用Sheet2的数据框执行上述代码时,现有的Sheet1数据将替换为Sheet2。有没有办法我可以更改两个工作表的值。
为了处理两张纸上的数据,您应该使用熊猫读取文件,创建2个单独的数据框(每张纸一个),然后使用xlsxwriter将它们保存在同一工作簿中。这是一个演示代码:
import pandas as pd
## Read the 2 sheets as separate dataframes
df1 = pd.read_excel('name_of_your_file.xlsx', sheet_name='Sheet1')
df2 = pd.read_excel('name_of_your_file.xlsx', sheet_name='Sheet2')
# Do all of your data manipulation here
# Start using xlsxwriter
writer = pd.ExcelWriter('name_of_the_new_file.xlsx', engine='xlsxwriter')
# Save each df to separate sheet in the same file
df1.to_excel(writer, sheet_name='Sheet1', index=False)
df2.to_excel(writer, sheet_name='Sheet2', index=False)
# You can format your worksheets here
# Finally save the file
writer.save()