使用技巧

import win32com
from win32com.client import Dispatch, constants

w = win32com.client.Dispatch('Word.Application')
# 或者使用下面的方法,使用启动独立的进程:
# w = win32com.client.DispatchEx('Word.Application')

# 后台运行,不显示,不警告
w.Visible = 0
w.DisplayAlerts = 0

# 打开新的文件
doc = w.Documents.Open( FileName = filenamein )
# worddoc = w.Documents.Add() # 创建新的文档

# 插入文字
myRange = doc.Range(0,0)
myRange.InsertBefore('Hello from python!')

# 使用样式
wordSel = myRange.Select()
wordSel.Style = constants.wdStyleHeading1

# 正文文字替换
w.Selection.Find.ClearFormatting()
w.Selection.Find.Replacement.ClearFormatting()
w.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)

# 页眉文字替换
w.ActiveDocument.Sections[0].Headers[0].Range.Find.ClearFormatting()
w.ActiveDocument.Sections[0].Headers[0].Range.Find.Replacement.ClearFormatting()
w.ActiveDocument.Sections[0].Headers[0].Range.Find.Execute(OldStr, False, False, False, False, False, True, 1, False, NewStr, 2)

# 表格操作
doc.Tables[0].Rows[0].Cells[0].Range.Text ='123123'
worddoc.Tables[0].Rows.Add() # 增加一行

# 转换为html
wc = win32com.client.constants
w.ActiveDocument.WebOptions.RelyOnCSS = 1
w.ActiveDocument.WebOptions.OptimizeForBrowser = 1
w.ActiveDocument.WebOptions.BrowserLevel = 0 # constants.wdBrowserLevelV4
w.ActiveDocument.WebOptions.OrganizeInFolder = 0
w.ActiveDocument.WebOptions.UseLongFileNames = 1
w.ActiveDocument.WebOptions.RelyOnVML = 0
w.ActiveDocument.WebOptions.AllowPNG = 1
w.ActiveDocument.SaveAs( FileName = filenameout, FileFormat = wc.wdFormatHTML )

# 打印
doc.PrintOut()

# 关闭
# doc.Close()
w.Documents.Close(wc.wdDoNotSaveChanges)
w.Quit()

(3)处理excel

[1]使用PyExcelerator读写EXCEL文件(Platform: Win,Unix-like) 
优点:简单易      缺点:不可改变已存在的EXCEL文件。 
PyExcelerator是一个开源的MS Excel文件处理python包。它主要是来写 Excel 文件.URL:  http://sourceforge.NET/projects/pyexcelerator/ 
我没有找到关于PyExcelerator的文档。只是看到了limodou的一篇介绍。 
http://blog.donews.com/limodou/archive/2005/07/09/460033.aspx 
这个包使用起来还是比较简单的:)。带了很多小例子,可以参照。 
例mini.py. 
================================= 
#!/usr/bin/env python 
# -*- coding: windows-1251 -*- 
# Copyright (C) 2005 Kiseliov Roman 
__rev_id__ = """$Id: mini.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" 
"导入模块 
from pyExcelerator import * 
"生成一个工作薄 
w = Workbook() 
"加入一个Sheet 
ws = w.add_sheet('Hey, Dude') 
"保存 
w.save('mini.xls') 
================================= 
[2]使用COM接口,直接操作EXCEL(只能在Win上) 
优点:可以满足绝大数要求。缺点:有些麻烦。:-) 
这方面的例子很多,GOOGLE 看吧:-). 文档也可以参看OFFICE自带的VBA EXCEL 帮助文件(VBAXL.CHM)。这里面讲述了EXCEL VBA的编程概念, 
不错的教程!另外,《Python Programming on Win32》书中也有很详细的介绍。这本书中给出了一个类来操作EXCEL 文件,可以很容易的加以扩展。 
#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
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 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 
    def addPicture(self, sheet, pictureName, Left, Top, Width, Height): 
        "Insert a picture in sheet" 
        sht = self.xlBook.Worksheets(sheet) 
        sht.Shapes.AddPicture(pictureName, 1, 1, Left, Top, Width, Height) 
    def cpSheet(self, before): 
        "copy sheet" 
        shts = self.xlBook.Worksheets 
        shts(1).Copy(None,shts(1)) 
"下面是一些测试代码。 
if __name__ == "__main__": 
    PNFILE = r'c:\screenshot.bmp' 
    xls = easyExcel(r'D:\test.xls') 
    xls.addPicture('Sheet1', PNFILE, 20,20,1000,1000) 
    xls.cpSheet('Sheet1') 
    xls.save() 
    xls.close()

摘自:http://my.oschina.net/duxuefeng/blog/64137

Python模块:win32com用法详解相关推荐

  1. python win32模块详解_python模块:win32com用法详解

    使用技巧 import win32com from win32com.client import Dispatch, constants w = win32com.client.Dispatch('W ...

  2. win32com python_python模块:win32com用法详解

    使用技巧 import win32com from win32com.client import Dispatch, constants w = win32com.client.Dispatch('W ...

  3. Python中self用法详解

    Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...

  4. Python模块之pexpect详解

    Python模块之pexpect详解(一) 一.pexpect模块介绍 二.Pexpect的安装 三.pexpect的核心组件 3.1 spawn类 3.1.1 简介 3.1.2 使用流程 3.1.3 ...

  5. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  6. python的继承用法_python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  7. 【 Python 中 int 用法详解】(转载)

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  8. Python 中 int 用法详解

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  9. 信息学奥赛 python 教程_Python在信息学竞赛中的运用及Python的基本用法(详解)

    前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在<算法竞赛入门经典-训练指南>中所说的一样,如果会用 ...

  10. 什么是多态,Python多态及用法详解

    什么是多态,Python多态及用法详解 在面向对象程序设计中,除了封装和继承特性外,多态也是一个非常重要的特性,本节就带领大家详细了解什么是多态. 我们都知道,Python 是弱类型语言,其最明显的特 ...

最新文章

  1. 【381天】我爱刷题系列140(2018.02.21)
  2. 下一代防火墙市场高速增长,年复合增长率为13.6%
  3. 视屏接口系列(一 ) ----------VGA(对与数信号显示器要加载A/D,延时拖尾、质量下降)...
  4. FOSCommentBundle功能包:基于ACL安全添加角色
  5. 使用@JsonIdentityInfo的Spring自定义序列化器
  6. HDU 3662 3D Convex Hull(三维凸包面的个数)
  7. HDU 1411--校庆神秘建筑(欧拉四面体体积计算)
  8. node.js中实现同步操作的3种实现方法
  9. 计算机云计算中心建设项目,某大学计算机云计算云数据中心建设方案.docx
  10. 离散数学期末复习概念_复习第1部分中的基本概念
  11. 局域网arp攻击_图解ARP协议(二)ARP攻击原理与实践
  12. 优秀课程案例:使用Scratch制作坦克大战经典版!
  13. 装双系统win10和android,厉害了小米6!不仅骁龙835,还支持安卓和win10双系统
  14. java 柱状图 宽度_Java 创建Excel图表
  15. 原来清理手机内存,使用管家是不够的!还需删除这4个文件夹
  16. android 支付宝第三方应用授权,支付宝开发平台—第三方应用授权
  17. 计算机PS属性怎么改,电脑不用ps怎么改图片分辨率 教你修改图片分辨率的方法...
  18. tf.nn.dropout() 警报信息处理
  19. 自定义listview和ProgressBar的简单使用
  20. Java实现QQ邮箱验证

热门文章

  1. 基于Python的汉语分词系统
  2. 当深度学习遇上量化交易——模型篇
  3. JavaScript启示录
  4. vsftp配置问题启示录
  5. 小米随身wifi驱动linux驱动下载,小米随身无线wifi电脑驱动下载|小米随身wifi驱动 v2.5 官方版 - 软件下载 - 绿茶软件园|33LC.com...
  6. html怎么防止扒站点,扒站工具-扒取站点js css的工具
  7. Ubuntu下如何查看GPU版本和使用信息
  8. axure 教务系统_AxureRP免费(教育)授权密钥申请攻略
  9. python源码深度剖析_Python源码剖析-深度探索动态语言核心技术 PDF 下载
  10. 【kaggle注册页面没有显示验证码】