您的位置:首页 > 编程语言 > Python开发

PYTHON操作EXCEL,实例代码

2010-10-05 10:10 876 查看
用pywin32了。我前段时间刚刚做过这方面的东西,给你一段代码希望对你有所帮助。Python code
from
win32com.client
import
Dispatch

import
win32com.client

class
easyExcel:

"""
A utility to make it easier to get at Excel.    Remembering

to save the data is your problem, as is    error handling.

Operates on one workbook at a time.
"""

def

__init__
(self, filename
=
None):

self.xlApp
=
win32com.client.Dispatch(
'
Excel.Application
'
)

if
filename:

self.filename
=
filename

self.xlBook
=
self.xlApp.Workbooks.Open(filename)

else
:

self.xlBook
=
self.xlApp.Workbooks.Add()

self.filename
=

''

def
save(self, newfilename
=
None):

if
newfilename:

self.filename
=
newfilename

self.xlBook.SaveAs(newfilename)

else
:

self.xlBook.Save()

def
close(self):

self.xlBook.Close(SaveChanges
=
0)

del
self.xlApp

def
GetExcelLineCount(self):

count
=
0

sht
=
self.xlBook.Worksheets(
'
第一轮
'
)

while
True:

if
sht.Cells(count
+

1
,
1
).Value
==
None:

break

count
+=

1

return
count

def
getCell(self, sheet, row, col):

"
Get value of one cell
"

sht
=
self.xlBook.Worksheets(sheet)

return
sht.Cells(row, col).Value

def
setCell(self, sheet, row, col, value):

"
set value of one cell
"

sht
=
self.xlBook.Worksheets(sheet)

sht.Cells(row, col).Value
=
value

def
getRange(self, sheet, row1, col1, row2, col2):

"
return a 2d array (i.e. tuple of tuples)
"

sht
=
self.xlBook.Worksheets(sheet)

return
sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Value

if

__name__

==

"
__main__
"
:

xls
=
easyExcel(
'
D:/用户目录/pythonworkspace/excel2doc/src/test.xls
'
)

lineNum
=
xls.GetExcelLineCount()

for
i
in
range(
1
,lineNum
+

1
):

for
j
in
range(
1
,
8
):

print
i,j,xls.getCell(
'
第一轮
'
, i, j)

xls.save()

xls.close()

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: