0

我想创建一个 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 作为列和行的值,为什么我不能在其中添加值?

4

2 回答 2

4

文档看来,ExcelLibrary 中的任何函数都没有创建包含任何行或列的 Excel 工作表。这就是为什么您的行数和列数都为 0。这也是您无法将 [1,1] 更改为 90 的原因。

引发的异常(使用机器人框架参数 --loglevel=DEBUG)表示“Put Number To Cell”不会动态创建所需的行和列。

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并创建自己的 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
于 2017-05-25T19:52:46.343 回答
0

点安装机器人框架-openpyxllib

这个 Robotframework Openpyxl 库提供了打开、读取、写入和保存 XLSX 文件的关键字

于 2020-05-24T09:57:23.783 回答