| Documentation: | Saves the Excel file indicated by fname |
|---|---|
| Start / End / Elapsed: | 20130614 10:29:17.650 / 20130614 10:29:17.650 / 00:00:00.000 |
| 10:29:17.650 | DEBUG | Got fname C:\RFW_Workspace\DT_TEST\Web Service Test Cases.xls |
| 10:29:17.650 | FAIL | AttributeError: 'NoneType' object has no attribute 'save' |
| 10:29:17.650 | DEBUG | Traceback (most recent call last):
File "C:\Python27\lib\site-packages\ExcelLibrary.py", line 152, in save_excel
self.tb.save(os.path.join(self.slash, self.tmpDir, fname)) |
if not self.tb:self.tb = copy(self.wb)
I am new to this group and am using Robot Framework at my work. Thanks to all those people who made Robot Framework an amazing tool to work.
if self.wb:
my_sheet_index = self.sheetNames.index(sheetname)
# cell = self.wb.get_sheet(my_sheet_index).cell(int(row), int(column))
# if cell.ctype is XL_CELL_TEXT:
if not self.tb:
self.wb.sheets()
self.tb = copy(self.wb)
if self.tb:
plain = easyxf('')
self.tb.get_sheet(my_sheet_index).write(int(row), int(column), value, plain)
From original code, I have commented two lines (as indicated) and moved self.wb.sheets() under if not self.tb: condition
Things work greatly after this...
Open the library(C:\Python27\Lib\site-packages\ExcelLibrary) in pycharm or any other IDE and modify/copy above code snippet.
def put_string_to_cell(self, sheetname, column, row, value):
if self.wb:
my_sheet_index = self.sheetNames.index(sheetname)
if not self.tb:
self.wb.sheets()
self.tb = copy(self.wb)
if self.tb:
plain = easyxf('')
self.tb.get_sheet(my_sheet_index).write(int(row), int(column), value, plain)
def put_date_to_cell(self, sheetname, column, row, value):
if self.wb:
my_sheet_index = self.sheetNames.index(sheetname)
# cell = self.wb.get_sheet(my_sheet_index).cell(int(row), int(column))
# if cell.ctype is XL_CELL_DATE:
if not self.tb:
self.wb.sheets()
self.tb = copy(self.wb)
if self.tb:
print(value)
# dt = value.split('.')
# dti = [int(dt[2]), int(dt[1]), int(dt[0])]
# print(dt, dti)
ymd = datetime.strptime(value, '%d-%m-%Y')
print(ymd)
plain = easyxf('', num_format_str='d-M-yyyy')
self.tb.get_sheet(my_sheet_index).write(int(row), int(column), ymd, plain)
def put_number_to_cell(self, sheetname, column, row, value):
if self.wb:
my_sheet_index = self.sheetNames.index(sheetname)
# cell = self.wb.get_sheet(my_sheet_index).cell(int(row), int(column))
# if cell.ctype is XL_CELL_NUMBER:
if not self.tb:
self.wb.sheets()
self.tb = copy(self.wb)
if self.tb:
plain = easyxf('')
self.tb.get_sheet(my_sheet_index).write(int(row), int(column), float(value), plain)
Hope this will help lot of people who want to write data to excel.
Thanks
Sathish