R
Ransom
Very newb here, but my question will hopefully be obvious to someone.
Code:
import string
from win32com.client import Dispatch
docdir = 'E:\\scripts\\Python\\RSAutomation\\'
def getOldData(testcases):
excel = Dispatch("Excel.Application")
excel.Workbooks.Open(docdir + 'FILE.xls')
# load and create list from file (testcases.csv)
for rsinput in testcases.xreadlines():
inputlist = string.split(rsinput, ',')
# iterate through and update spreadsheet input
cellx = range(3,51)
values = range(0,48)
for i,r in zip(cellx, values):
excel.ActiveSheet.Cells(i,2).Value = inputlist[r]
# TODO: read output from cell 32,6 into a tuple or list and
then return list to __main__
[THIS IS WHERE I AM HAVING A PROBLEM]
print excel.ActiveSheet.Cells(32,6) <--This prints properly
as loop executes
excel.ActiveWorkbook.Close(SaveChanges=0)
excel.Quit()
if __name__ == "__main__":
csv_testcases = open('arse_testcases.csv','r')
getOldData(csv_testcases)
OK, so what is happening is that I am sending a list of data to an
overly complicated spreadsheet that produces it's own output (in cell
32,6). As I loop through multiple test cases, the print statement
calling into COM for the cell data seems to be printing out results
just fine. But when I try and put the output from the spreadsheet into
a dynamic list after the TODO section thusly:
outputlist = []
outputlist.extend(excel.ActiveSheet.Cells(32,6)
return outputlist
I get an error like:
[<win32com.gen_py.Microsoft Excel 9.0 Object Library.Range instance at
0x15450880>]
I need to be able to return the dynamically generated built up by the
responses from the spreadsheet lookup call (the exce.Activesheet
thingy). Is there a better way to get this dynamically built list out
of the funtion?
Thanks!!!
Code:
import string
from win32com.client import Dispatch
docdir = 'E:\\scripts\\Python\\RSAutomation\\'
def getOldData(testcases):
excel = Dispatch("Excel.Application")
excel.Workbooks.Open(docdir + 'FILE.xls')
# load and create list from file (testcases.csv)
for rsinput in testcases.xreadlines():
inputlist = string.split(rsinput, ',')
# iterate through and update spreadsheet input
cellx = range(3,51)
values = range(0,48)
for i,r in zip(cellx, values):
excel.ActiveSheet.Cells(i,2).Value = inputlist[r]
# TODO: read output from cell 32,6 into a tuple or list and
then return list to __main__
[THIS IS WHERE I AM HAVING A PROBLEM]
print excel.ActiveSheet.Cells(32,6) <--This prints properly
as loop executes
excel.ActiveWorkbook.Close(SaveChanges=0)
excel.Quit()
if __name__ == "__main__":
csv_testcases = open('arse_testcases.csv','r')
getOldData(csv_testcases)
OK, so what is happening is that I am sending a list of data to an
overly complicated spreadsheet that produces it's own output (in cell
32,6). As I loop through multiple test cases, the print statement
calling into COM for the cell data seems to be printing out results
just fine. But when I try and put the output from the spreadsheet into
a dynamic list after the TODO section thusly:
outputlist = []
outputlist.extend(excel.ActiveSheet.Cells(32,6)
return outputlist
I get an error like:
[<win32com.gen_py.Microsoft Excel 9.0 Object Library.Range instance at
0x15450880>]
I need to be able to return the dynamically generated built up by the
responses from the spreadsheet lookup call (the exce.Activesheet
thingy). Is there a better way to get this dynamically built list out
of the funtion?
Thanks!!!