我想创建一个Excel文件,并使用Robot Framework将输入数据添加到其中。 所以我添加了Excel库。 这是我使用的代码,我收到了一条错误消息
IndexError:列表索引超出范围
所以我对第3行进行了评论,得到的列和行数为0。
Create Excel Workbook NewExcelSheet
Save Excel NewExcel.xls default=True
Open Excel NewExcel.xls default=True
Put Number To Cell NewExcelSheet 1 1 90
${Col}= Get Column Count NewExcelSheet
${Row}= Get Row Count NewExcelSheet
Log ${Col}
Log ${Row}
为什么我的列和行的值为0,为什么我无法在其中添加值?
答案 0 :(得分:3)
从documentation出现,好像ExcelLibrary中的任何函数都没有创建包含任何行或列的Excel工作表。这就是为什么你的行数和列数为0的原因。这也是你无法将[1,1]更改为90的原因。
引发的异常(使用机器人框架参数--loglevel = DEBUG)表示"将数字放入单元格"不会动态创建所需的行和列。
Traceback (most recent call last):
File "c:\python27_32\lib\site-packages\ExcelLibrary\ExcelLibrary.py", line 370, in put_number_to_cell
cell = self.wb.get_sheet(my_sheet_index).cell(int(row), int(column))
File "c:\python27_32\lib\site-packages\xlrd\sheet.py", line 397, in cell
xfx = self.cell_xf_index(rowx, colx)
File "c:\python27_32\lib\site-packages\xlrd\sheet.py", line 423, in cell_xf_index
xfx = self._cell_xf_indexes[rowx][colx]
我建议您查看python library并创建自己的Excel适配器模块。
例如使用OpenPyXl:
make_excel.py:
from openpyxl import Workbook, load_workbook
from contextlib import closing
def make_excel_file(file_name):
with closing(Workbook()) as wb:
wb.save(file_name)
def add_value(file_name, cell_cords, value):
with closing(load_workbook(filename=file_name)) as wb:
ws = wb.active
ws[cell_cords] = value
wb.save(file_name)
make_excel.robot:
*** Settings ***
Library make_excel
*** Test Cases ***
Test
Make Excel File NewExcel.xlsx 1000
Add Value NewExcel.xlsx A1 90
答案 1 :(得分:0)
pip安装robotframework-openpyxllib
这个Robotframework Openpyxl库提供了打开,读取,写入和保存XLSX文件的关键字