使用Python使用多个ExcelSheet更改工作簿中特定列中的值吗?

问题描述 投票:0回答:1

我有一个名为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文件已更新了列值enter image description here

但是,当我尝试使用Sheet2的数据框执行上述代码时,现有的Sheet1数据将替换为Sheet2。有没有办法我可以更改两个工作表的值。

python-3.x excel pandas openpyxl xlsxwriter
1个回答
0
投票

为了处理两张纸上的数据,您应该使用熊猫读取文件,创建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()
© www.soinside.com 2019 - 2024. All rights reserved.