|
[Webware-checkins] CVS: Webware/MiscUtils DataTable.py,1.24,1.25
From: Dave Rogers <drogers@us...> - 2004-03-26 04:09
|
Update of /cvsroot/webware/Webware/MiscUtils
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18513
Modified Files:
DataTable.py
Log Message:
Enhanced Datatable to accept starting worksheet, row and column for reading excel files. Check for excel file is now done with a .lower() to make it case insensitive
Index: DataTable.py
===================================================================
RCS file: /cvsroot/webware/Webware/MiscUtils/DataTable.py,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** DataTable.py 19 Dec 2003 06:26:03 -0000 1.24
--- DataTable.py 26 Mar 2004 03:58:23 -0000 1.25
***************
*** 364,368 ****
## File I/O ##
! def readFileNamed(self, filename, delimiter=',', allowComments=1, stripWhite=1):
self._filename = filename
data = None
--- 364,368 ----
## File I/O ##
! def readFileNamed(self, filename, delimiter=',', allowComments=1, stripWhite=1, worksheet=1, row=1, column=1):
self._filename = filename
data = None
***************
*** 371,376 ****
data = readPickleCache(filename, pickleVersion=1, source='MiscUtils.DataTable')
if data is None:
! if self._filename.endswith('.xls'):
! self.readExcel()
else:
file = open(self._filename, 'r')
--- 371,376 ----
data = readPickleCache(filename, pickleVersion=1, source='MiscUtils.DataTable')
if data is None:
! if self._filename.lower().endswith('.xls'):
! self.readExcel(worksheet, row, column)
else:
file = open(self._filename, 'r')
***************
*** 411,429 ****
return canReadExcel()
! def readExcel(self):
maxBlankRows = 10
numRowsToReadPerCall = 20
-
from win32com.client import Dispatch
xl = Dispatch("Excel.Application")
wb = xl.Workbooks.Open(os.path.abspath(self._filename))
try:
! sh = wb.Worksheets(1)
! sh.Cells(1, 1)
!
# determine max column
numCols = 1
while 1:
! if sh.Cells(1, numCols).Value in [None, '']:
numCols -= 1
break
--- 411,427 ----
return canReadExcel()
! def readExcel(self, worksheet=1, row=1, column=1):
maxBlankRows = 10
numRowsToReadPerCall = 20
from win32com.client import Dispatch
xl = Dispatch("Excel.Application")
wb = xl.Workbooks.Open(os.path.abspath(self._filename))
try:
! sh = wb.Worksheets(worksheet)
! sh.Cells(row, column)
# determine max column
numCols = 1
while 1:
! if sh.Cells(row, numCols).Value in [None, '']:
numCols -= 1
break
***************
*** 441,445 ****
maxCol = chr(ord('A') + numCols - 1)
haveReadHeadings = 0
! rowNum = 1
numBlankRows = 0
valuesBuffer = {} # keyed by row number
--- 439,443 ----
maxCol = chr(ord('A') + numCols - 1)
haveReadHeadings = 0
! rowNum = row
numBlankRows = 0
valuesBuffer = {} # keyed by row number
|
| Thread | Author | Date |
|---|---|---|
| [Webware-checkins] CVS: Webware/MiscUtils DataTable.py,1.24,1.25 | Dave Rogers <drogers@us...> |