import xlrd
from xlutils.copy import copy
sheet_name = "Sheet1"
filename = "D:\\prac.xls"
col=[1,2,3]
wb = xlrd.open_workbook(filename, formatting_info = True) # 打开excel文件
sheet = wb.sheet_by_name(sheet_name) # 获取sheet对象
for i in range(1,100):
xlwt_wb = copy(wb) # 将xlrd的对象转化为xlwt的对象
xlwt_sheet = xlwt_wb.get_sheet(sheet_name) #获取sheet对象
value="di"+str(i)
xlwt_sheet.write(i, 1, value) #写入数据
xlwt_wb.save(filename)
会出现只有最后一个写入的数据被保存到excel中的结果。
在相近的函数调用中, xlwt_wb = copy(wb) ,xlwt_sheet = xlwt_wb.get_sheet(sheet_name) 的相继调用也会导致刚写入的数据被下一个数据覆盖的结果。
调整代码后全部数据都能保存下来
import xlrd
from xlutils.copy import copy
sheet_name = "Sheet1"
filename = "D:\\prac.xls"
col=[1,2,3]
wb = xlrd.open_workbook(filename, formatting_info = True) # 打开excel文件
sheet = wb.sheet_by_name(sheet_name) # 获取sheet对象
xlwt_wb = copy(wb) # 将xlrd的对象转化为xlwt的对象
xlwt_sheet = xlwt_wb.get_sheet(sheet_name) # 获取sheet对象
for i in range(1,100):
value="di"+str(i)
xlwt_sheet.write(i, 1, value) #写入数据
xlwt_wb.save(filename) #放循环中结果一样