如何在Robot Framework中的excel文件中创建和放置数据?

时间:2017-05-25 11:38:03

标签: excel selenium robotframework excellibrary

我想创建一个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,为什么我无法在其中添加值?

2 个答案:

答案 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文件的关键字