我尝试使用下面的脚本将值写入excel文件(XLS)。 有4行值,但输出只显示1行。
第二个问题:我可以使用现有文件吗?
*** Settings ***
Library Collections
Library WriteExcel.Excel
*** Variables ***
*** Test Cases ***
Write Excel Test
[Tags]
@{content} Create List
Append To List ${content} 1 1 Test Case 1
Append To List ${content} 2 1 Test Case 2
Append To List ${content} 3 1 Test Case 3
Append To List ${content} 4 1 Test Case 4
Write To Excel File test3.xls ${content}
这是我的WriteExcel.py
import xlwt
class Excel(object):
def __init__(self):
print "write to excel file"
def group(self,lst, n):
return zip(*[lst[i:n] for i in range(n)])
def write_to_excel_file(self,filename,content_list):
# Create an new Excel file and add a worksheet.
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('wb')
#content_lists=[1,1,'hello',2,1,'brother',3,1,'how are you',4,1,'are you good today']
t=self.group(content_list,3)
#print(t)
for item in t:
worksheet.write(int(item[0]), int(item[1]), item[2])
# close work book
workbook.save(filename)
答案 0 :(得分:1)
需要对组功能进行小的更改
def group(self,lst, size):
return ([lst[i:i+size] for i in range(0, len(lst), size)])
是的,可以将数据添加到现有文件中。请参考以下示例
https://stackoverflow.com/a/25144775/6626530 - 感谢@Chopra
import xlrd
import xlwt
from xlutils.copy import copy
def saveWorkSpace(fields):
rb = xlrd.open_workbook('accounts.xls',formatting_info=True)
r_sheet = rb.sheet_by_index(0)
r = r_sheet.nrows
wb = copy(rb)
sheet = wb.get_sheet(0)
sheet.write(r,0,fields['name'])
sheet.write(r,1,fields['phone'])
sheet.write(r,2,fields['email'])
wb.save('accounts.xls')
print 'Wrote accounts.xls'