优化以下代码 def write_data_to_excel(self, data, targetfile): workbook = openpyxl.Workbook() sheet = workbook.active # 指定标题行 sheet.append(["bug_id", "bug_status", "delta_ts","short_desc"]) # 写入数据 for num,row in enumerate(data,start=1): sheet['A{}'.format(num)] = row[0] sheet['B{}'.format(num)] = row[1] sheet['C{}'.format(num)] = row[2] sheet['D{}'.format(num)] = row[3] # 保存工作簿 workbook.save(targetfile) # 关闭工作簿 workbook.close()
时间: 2024-03-05 07:53:47 浏览: 53
Struts2 上传图片示例
可以对这段代码进行如下优化:
1. 使用 `worksheet.cell()` 方法获取单元格对象,然后在单元格对象上设置值,这样比直接使用 `sheet['A{}'.format(num)] = row[0]` 更快。
2. 将 `enumerate()` 函数的 `start` 参数设置为 2,这样就可以从第二行开始写入数据,避免写入标题行时出现重复。
3. 将写入单元格的代码放入一个函数中,这样可以减少重复代码。
下面是优化后的代码:
```
def write_data_to_excel(self, data, targetfile):
workbook = openpyxl.Workbook()
sheet = workbook.active
# 指定标题行
header = ["bug_id", "bug_status", "delta_ts", "short_desc"]
write_row(sheet, header, 1)
# 写入数据
for num, row in enumerate(data, start=2):
write_row(sheet, row, num)
# 保存工作簿
workbook.save(targetfile)
# 关闭工作簿
workbook.close()
def write_row(sheet, row, row_num):
for col_num, value in enumerate(row, start=1):
cell = sheet.cell(row=row_num, column=col_num)
cell.value = value
```
这样可以提升代码的执行效率和可读性。
阅读全文