0

I want to create an Excel file and add input data into it using Robot Framework. So I added the Excel Library. Here's the code I use, I got an error message saying

IndexError: list index out of range

So I commented the 3rd line and got the column and row count which are 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}  

Why am I getting 0 as values for the columns and rows and why am I not able to add values in it?

2 Answers 2

4

From the documentation it appears as though no function in ExcelLibrary creates an excel sheet with any rows or columns. That's why you are getting a row count and column count of 0. It's also why you are unable to change [1,1] to 90.

The raised exception (use the robot framework argument --loglevel=DEBUG) indicates that "Put Number To Cell" does not dynamically create the needed rows and columns.

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]

I would recommend looking into a python library and creating your own excel adapter module.

For example using 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
Sign up to request clarification or add additional context in comments.

Comments

0

pip install robotframework-openpyxllib

This Robotframework Openpyxl library that provides keywords to Open, Read, Write and Save XLSX files

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.