zoukankan      html  css  js  c++  java
  • python 操作word文档

    因为工作需要操作一些word文档,记录一下学习思路

    #-*- encoding: utf8 -*-
    import win32com
    from win32com.client import Dispatch, constants
    import win32com.client
    import __main__
    import os
    import new
    import sys 
    import re
    import string
    reload(sys) 
    sys.setdefaultencoding('utf8')
    #from fileinput import filename
    
    class Word(object):
        #初始化word对象
        def __init__(self, uri):
            self.objectword(uri)
           
        #创建word对象
        def objectword(self,url):
            self.word = win32com.client.Dispatch('Word.Application')
            self.word.Visible = 0
            self.word.DisplayAlerts = 0
           
            self.docx = self.word.Documents.Open(url)
            self.wrange = self.docx.Range(0, 0)
           
        #关闭word
        def close(self):
            self.word.Documents.Close()
            self.word.Quit()
        #创建word
        def create(self):
           
            pass
        #在word中进行查找
        def findword(self, key):
            question = []
            uri = r'E:XEctb.docx'
            self.objectword(uri)
            #读取所有的word文档内容
            range = self.docx.Range(self.docx.Content.Start,self.docx.Content.End)
            question = str(range).split("&")
            #查找内容
            #question = re.split(r"(
    [1][0-9][0-9]+.)",str(range))
            #l = question[0].split("d+.")
            for questionLine in question:
                questionLine = questionLine.strip('
    ')
                l = re.split(r"([1][0-9][0-9]+.)",questionLine)
                del l[0]
                for t in l:
                    s = str(key[0:3])
                    if str(t).find(s) > -1:
                        #插入
                        g = string.join(l)
                       
                        print g.encode('gb2312')
                        #print g.decode("")
                        self.insertword(g)
                        print "sss"
                    else:
                        print "ttt"
                   
        #插入word
        def insertword(self,w):
            url = r'E:XEctb.doc'
            self.objectword(url)
            self.wrange.InsertAfter(w)
            pass
    
        #读取数据源
        def source(self, src):
            f = open(src)
            d = f.readlines()
            for l in d:
                name, question01, question02, question03, question04, question05 = tuple(l.decode('utf8').split('	'))
                if question01 != u'全对':
                    #self.wrange.InsertAfter(name)
                    self.findword(question01)
            return self
       
    Word(r'E:XExx.docx').source(r'E:XExe.txt').close()
    

      

  • 相关阅读:
    增加增删改查按钮
    基于.net创建一份报表模块
    bootstrap 三层设计
    DI 依赖注入之StructureMap框架
    unit vs2017基于nunit framework创建单元测试
    Oracle彻底卸载
    sql 统计常用的sql
    Webserver asp配置及伪静态设置
    MVC ASP.NET MVC5使用Area区域
    VS 发布MVC网站缺少视图解决方案
  • 原文地址:https://www.cnblogs.com/Mushishi_xu/p/4304895.html
Copyright © 2011-2022 走看看