Python向已存在Excel新增Sheet并追加数据(不覆盖原文件)
本文介绍如何使用Python3结合xlrd与xlwt库,在保留原有Excel数据的前提下,向已存在的文件中新增工作表(Sheet)并向指定Sheet追加内容。通过xlutils.copy复制工作簿,利用add_sheet创建新表,并演示了从DataFrame读取数据写入Excel的具体代码实现,确保原文件其他Sheet数据不受影响。
每月需要更新一个Excel表格,执行以下两项操作,且必须确保不覆盖原有的Sheet内容:
1. 在现有的Excel文件中新增一个Sheet
2. 向该Excel文件中已有的某个Sheet内追加新的数据内容
本方案基于Python3环境,依赖xlrd和xlwt库。具体实现代码如下,经测试有效,供参考使用:
import xlwt
import xlrd
from xlutils.copy import copy
#打开需要操作的excel表
wb=xlrd.open_workbook(path)
#复制原有表
newb=copy(wb)
#新增sheet,参数是该sheet的名字,可自定义
wbsheet=newb.add_sheet(dl+'-'+dn)
#向新sheet中写入数据。本代码中的d是某个dataframe
wbsheet.write(0,0,'date')
wbsheet.write(0,1,'visited')
wbsheet.write(0,2,'success')
for i in range(d.shape[0]):
wbsheet.write(i + 1, 0, d.iloc[i, 0])
for j in range(1,d.shape[1]):
wbsheet.write(i+1,j,int(d.iloc[i,j]))
#获取原有excel表中sheet名为‘summary'的sheet
sumsheet=newb.get_sheet('summary')
#k表示该sheet的最后一行
k=len(sumsheet.rows)
#想原有sheet后面新增数据
sumsheet.write(k,0,dl+'-'+dn)
sumsheet.write(k,1,int(sum(d['visited'])))
sumsheet.write(k,2,int(sum(d['success'])))
#保存为原有的excel表路径
newb.save(path)
以上关于Python向已存在Excel中新增Sheet且不覆盖原数据的示例分享完毕,希望能为读者提供有益参考,欢迎继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













