keepononon_____
2021-11-04 22:19
采纳率: 66.7%
浏览 39
已结题

python 怎么把一个工作簿的sheet copy到另一个工作簿指定sheet里,不覆盖原来的sheet

请帮忙修改代码,我先创建了一个df的data,然后把它存在了GTS这个工作簿里GTS这个sheet中。我怎么把GTS 这个sheet copy到open- copy的GTS 这个sheet里呢?或者有没有办法不用先把df的data存到GTS 工作簿中,而是直接存到open-copy的GTS 这个sheet中?

```python
df.to_excel('GTS.xlsx',sheet_name='GTS',index=None,header=True)
wb4=load_workbook('GTS.xlsx')
a=wb4['GTS']
wb3 = load_workbook('open - Copy.xlsx')
wb3.create_worksheet(a)
wb3.save('open - Copy.xlsx')

```

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • CSDN专家-HGJ 2021-11-05 01:18
    最佳回答

    如是要在原sheet数据的基础上,在其下方写入另一张表格数据的话,代码可以这么写:

    import openpyxl
    
    x1=openpyxl.load_workbook('t1.xlsx')
    x2=openpyxl.load_workbook('t1_copy.xlsx')
    sx1=x1['Sheet1']
    sx2=x2['Sheet1']
    
    r1=sx1.max_row
    c1 = sx1.max_column
    r2 = sx2.max_row
    c2 = sx2.max_column
    m=[]
    for row in sx1.rows:
        r=[]
        for cell in row:
            r.append(cell.value)
        m.append(r)
    for i in range(1,r1+1):
        for j in range(1,c1+1):
            sx2.cell(i+r2+1,j).value=m[i-1][j-1]# sx2.cell(i+r2+1,j)中的+1,是在原数据下方空一格写入。可根据需要自己设定。
    x2.save('t1_copy.xlsx')
    
    
    

    如有帮助请点采纳。

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题