a.arm
a.arm

Reputation: 5

How to write to existing Excel File (XLS)

I am newbie. I try to write data in existing excel file. When I run on robotframework, it display "No keyword with name 'Write To Excel File' found". So could you help me to fix my code or give me suggestion to me?

import xlwt
from xlutils.copy import copy

class Excel(object):

    def __init__(self):
        print "write to excel file"

    def group(self,lst, n):

         return ([lst[i:i+n] for i in range(0,len(lst),n)])
    def write_to_excel_file(self,filename,content_list):

            # Existing Excel File
            w = copy(filename)
            b = w.get_sheet(0)

            # 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:
                b.write(int(item[0]), int(item[1]), item[2])


            # close work book
                w.save(filename)

Upvotes: 0

Views: 1526

Answers (1)

Shijo
Shijo

Reputation: 9721

Let me know if this works for you

import xlwt
from xlutils.copy import copy
import xlrd
import os.path

class Excel(object):

    def __init__(self):
        print "write to excel file"

    def group(self,lst, size):
        return ([lst[i:i+size] for i  in range(0, len(lst), size)])

    def write_to_excel_file(self,filename,content_list):
        if not os.path.exists(filename):
            workbook = xlwt.Workbook() # Create an new Excel file and add a worksheet.
            worksheet = workbook.add_sheet('wb') #add worksheet
            workbook.save(filename)
        rb = xlrd.open_workbook(filename,formatting_info=True)
        r_sheet = rb.sheet_by_index(0) 
        r = r_sheet.nrows
        wb = copy(rb) 
        sheet = wb.get_sheet(0)
        t=self.group(content_list,3)
        for item in t:
            sheet.write(int(item[0]), int(item[1]), item[2])
        wb.save(filename)

RIDE test cases

*** Settings ***
Library           Collections
Library           WriteExcel.Excel

*** Variables ***

*** Test Cases ***
Write Excel Test first
    [Tags]
    @{content}    Create List
    Append To List    ${content}    15    1    Test Case 1
    Append To List    ${content}    16    1    Test Case 2
    Append To List    ${content}    17    1    Test Case 3
    Append To List    ${content}    18    1    Test Case 4
    Write To Excel File    test3.xls    ${content}
    log    @${content}

Write Excel Test Second
    [Tags]
    @{content}    Create List
    Append To List    ${content}    25    1    Test Case 11
    Append To List    ${content}    26    1    Test Case 12
    Append To List    ${content}    27    1    Test Case 13
    Append To List    ${content}    28    1    Test Case 14
    Write To Excel File    test3.xls    ${content}
    log    @${content}

Upvotes: 3

Related Questions