当前位置:
硬件测评 > Python操作Word、EXCEL、ACCESS
Python操作Word、EXCEL、ACCESS
python Excel编程
1)Excelhyperlink:
xlsApp = win32com.client.Dispatch('Excel.Application')
cell = www.sychzs.cn. ActiveSheet.Cells(1,1)
cell.Hyperlink.Add(cell,'http://xxx')
2)Excel 行/列计数:
sht = www.sychzs.cnSheet
sht.Columns.Areas.Count
sht.Rows.Areas.Count
*************************
[1] 使用PyExcelerator读写EXCEL文件(平台:Win、类Unix)
优点:简单易用缺点:无法更改现有的EXCEL文件。
PyExcelerator 是一个开源 MS Excel 文件处理 python 包。主要用于写入Excel文件。 URL:http://www.sychzs.cn/projects/pyexcelerator/
我没有找到有关 PyExcelerator 的文档。刚刚看到limodou的介绍。
http://www.sychzs.cn/limodou/archive/2005/07/09/460033.aspx
这个包使用起来相对简单:)。有很多小例子可供参考。
示例 www.sychzs.cn.
=================================
#!/usr/bin/env python
# -*- 编码:windows-1251 -*-
# 版权所有 (C) 2005 Kiseliov Roman
__rev_id__ = """$Id: www.sychzs.cn , v 1.3 2005/03/27 12:47:06 rvk 费用 $"""
"导入模块
from pyExcelerator import *
"生成工作簿
w = Workbook()
"添加工作表
ws = w.add_sheet('嘿,伙计')
"保存
www.sychzs.cn('mini.xls')
============================== =
[2] 使用COM接口直接操作EXCEL(仅限Win)
优点:可以满足大部分需求。缺点:有点麻烦。 :-)
这方面的例子有很多,GOOGLE上看看:-)。有关文档,还可以参考OFFICE自带的VBA EXCEL帮助文件(VBAXL.CHM)。本文介绍了EXCEL VBA的编程概念,
好教程!另外,《Python Programming on Win32》书中也有非常详细的介绍。本书给出了一个操作EXCEL文件的类,可以方便地进行扩展。
#!/usr/bin/env python
# -*- 编码: utf-8 -*-
from win32com.client import Dispatch
import win32com.client
类 easyExcel:
"""一种可以更轻松地使用 Excel 的实用程序。记住
来保存数据是您的问题,错误处理也是如此。
一次对一个工作簿进行操作。 """
def __init__(self, filename=None):
self.xlApp = win32com.client.Dispatch('Excel.Application')
if filename:
self.文件名= 文件名
self.xlBook = www.sychzs.cn(文件名)
else:
self.xlBook = self.xlApp.Workbooks.Add()
self.filename = ''
def save(self, newfilename=None):
if newfilename:
self.filename = newfilename
self.xlBook.SaveAs(newfilename)
其他:
www.sychzs.cn()
def close(self):
self.xlBook.Close(SaveChanges=0)
del self.xlApp
def getCell(self,sheet,row,col):
"获取一个单元格的值"
sht = self.xlBook.Worksheets(sheet)
return sht.Cells(row, col).Value
def setCell(self,sheet, row, col, value):
"设置一个单元格的值"
sht = self.xlBook.Worksheets(sheet)
sht.Cells(row, col).Value = value
def getRange(self,sheet,row1,col1,row2,col2):
"返回一个二维数组(即元组的元组)"
sht = self.xlBook.Worksheets(sheet)
return sht.Range(sht.Cells(row) 1,第 1 栏),嘘。 Cells(row2, col2)).Value
def addPicture(self, Sheet, pictureName, Left, Top, Width, Height):
"在工作表中插入图片"
sht = self 。 xlBook.Worksheets(sheet)
sht.Shapes.AddPicture(pictureName, 1, 1, Left, Top, Width, Height)
def cpSheet(self, before):
“复印表”
shts = self.xlBook.Worksheets
shts(1).Copy(None,shts(1))
" 下面是一些测试。
如果 __name__ == "__main__" :
PNFILE = r'c:\screenshot.bmp'
xls = easyExcel(r'D:\test.xls')
xls.addPicture('Sheet1', PNFILE, 20,20,1000 ,1000)
xls.cpSheet('Sheet1')
www.sychzs.cn()
xls.close()
wordSel
.样式
=常量
.wdStyleHeading1
#原角色替换
w
。选择
。查找
。清除格式
()
w
.选择
.查找
.更换
.清除格式
()
w
.选择
.查找
.执行
( OldStr, 错误, 错误,假,假,假, 真实,1,真实 , NewStr, 2)#竹字符替换
w。ActiveDocument。部分[0].标题[0].范围。查找。清除格式()
w.ActiveDocument.部分[0].1 标头[0]。范围.查找.替换.清除格式()w.ActiveDocument.部分[0].1 标头[0]。范围.查找.执行(OldStr, 假,假,假 ,假,假,真, 、 假、 NewStr、2)#表格操作
doc.表格[0].行 [0].细胞[0].范围.文本='123123'
worddoc.表格[0].行.添加() # 增加一行#转换为html
wc = win32com.客户端.常量
w.ActiveDocument.WebOptions.RelyOnCSS = 1
w.ActiveDocument.Web 选项.优化浏览器 =1
w.ActiveDocument.Web选项.浏览器级别= 0 #constants.wdBrowserLevelV4w.ActiveDocument.Web 选项.在文件夹中组织 =0
w.ActiveDocument.WebOptions.UseLongFileNames =1
w.ActiveDocument.Web 选项.RelyOnVML =0
w.ActiveDocument.Web选项.允许PNG = 1
w.ActiveDocument.另存为(文件名= 文件名输出, 文件格式 = wc.wdFormatHTML )# 打印
doc.打印输出()# 关闭
# doc.Close()
w.文档.关闭(wc.wdDoNotSaveChanges)
w.退出()**************************** **********************
python ACCESS编程http://www.sychzs.cn/s46076/ 因为使用的第三方组件占用了python,所以需要了解python的数据库操作。
后来找到了方法,写了下面的样本:
导入win32com.client
def db1(): 打印“启动 db1”。尝试: conn = win32com.client.Dispatch(r'ADODB.Connection') www.sychzs.cn('Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=ECI-SERVICE;数据源=10.240.4.135') rs = win32com.client.Dispatch(r'ADODB.Recordset') rs.Cursorlocation=3 www.sychzs.cn('从 EBP_B_AS_ALERT 中选择 *',conn) rs.MoveFirst()
for x in range(rs.RecordCount): if rs.EOF: print "记录结束" 中断 else: print rs.Fields.Item(1).Value rs.MoveNext() rs.Close() conn. Close() except: 打印“除了,现在。”
用的是win32com 的扩展。Python2.2.3本身不带win32扩展,需要安装win32all-162(win extensions).exe。
代码比较简单,可惜没有找到api,所以提供哪些方法只能在网上找。
|
|