che*_*art 5 python excel xlrd xlwt
如果我理解正确,Workbook的add_sheet方法会创建一个新的工作表(并将其添加到工作簿).我有一个现有的Excel模板(有一个格式化的工作表作为添加信息的基础)我想用xlutils复制并使用新工作表名称多次将其添加到新工作簿.我该如何实现这一目标?我通过代码了解如何将现有工作表添加到现有工作簿,但找不到类似的东西?
from xlrd import open_workbook
from xlutils.copy import copy
from xlwt import Workbook
rb = open_workbook('report3.xlt',formatting_info=True)
wb = copy(rb)
new_book = Workbook()
for distinct_employee in distinct_employees:
w_sheet = wb.get_sheet(0)
w_sheet.write(6,6,distinct_employee.name)
# give the sheet a new name (distinct_employee.id_number)
# add this sheet to new_book
book.save('all_employees.xls')
Run Code Online (Sandbox Code Playgroud)
我发现使用 copy.deepcopy 您可以创建工作表的副本。还可以使用 _Workbook__worksheets 属性设置工作簿的工作表列表
使用您的示例我将得到以下代码:
from copy import deepcopy
from xlrd import open_workbook
from xlutils.copy import copy as copy
from xlwt import Workbook
rb = open_workbook('report3.xlt',formatting_info=True)
wb = copy(rb)
new_book = Workbook()
sheets = []
for distinct_employee in distinct_employees:
w_sheet = deepcopy(wb.get_sheet(0))
w_sheet.write(6,6,distinct_employee.name)
# give the sheet a new name (distinct_employee.id_number)
w_sheet.set_name(distinct_employee.name)
# add w_sheet to the sheet list
sheets.append(w_sheet)
# set the sheets of the workbook
new_book._Workbook__worksheets = sheets
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11574 次 |
| 最近记录: |