首页 > 解决方案 > 覆盖 xlsx 上的第一列

问题描述

我正在尝试在具有多个工作表的 Excel 文件上覆盖给定工作表(“属”)的第一列的数据。数据来自熊猫数据框。
这是我正在使用的代码:

import sys
import pandas as pd
import openpyxl
from openpyxl import load_workbook

    df = pd.DataFrame(analysis_data)

    writer = pd.ExcelWriter('Raw.xlsx', engine='openpyxl', mode='w')
    writer.book = load_workbook('Raw.xlsx')
    df.to_excel(writer,sheet_name='Genus', startrow=0, startcol=0, header=False, index=False)
    writer.save()
    writer.close()

我已经尝试将 ExcelWrite 的模式更改为“a”而不是“w”,但它总是添加一个具有相同名称(“Genus1”)的新工作表。知道如何解决这个问题吗?

提前致谢!

标签: pythonpandas

解决方案


你认为你应该使用 给定 df 的上下文管理器

import pandas as pd


df = pd.read_excel(r'C:\Users\Administrator\Dropbox\Raw.xlsx')

print(df)

   a   b
0  1   7
1  2   8
2  3   9
3  4  10
4  5  44
5  6  11

df.a = [10,20,30,40,50,60]

with pd.ExcelWriter(r'C:\Users\Administrator\Dropbox\Raw.xlsx') as writer:  
        df.to_excel(writer, sheet_name='Genus',index=False)


df = pd.read_excel(r'C:\Users\Administrator\Dropbox\Raw.xlsx')


print(df)


print(df)
    a   b
0  10   7
1  20   8
2  30   9
3  40  10
4  50  44
5  60  11

推荐阅读