zoukankan      html  css  js  c++  java
  • 读取docx表格中的信息

    参考了 http://blog.csdn.net/qq_34475777/article/details/62055523   http://www.cnblogs.com/deepwaterplan/articles/6664796.html

    conda安装 pip install python_docx 否则from docx import Document找不到Document
    #coding:utf-8

    import os
    import win32com
    from win32com.client import Dispatch, constants
    from docx import Document

    def parse_docx(f):
    d = Document(f)
    t0 = d.tables[0]
    # t1 = d.tables[1]
    # t2 = d.tables[2]
    # t_next=d.tables[1]
    #title= t.cell(0,1).text//比如说标题在表格中位于(0,1)
    name = t0.cell(1,1).text
    print name


    if __name__ == "__main__":
    w = win32com.client.Dispatch('Word.Application')
    parse_docx('E:\2.docx')


    有个问题:想直接读取doc 没法实现 只好把doc转成docx再读取(http://www.cnblogs.com/hanxing/p/7018617.html)

    doc可以直接读取了 可是结果并如docx读取的好还是用docx的方法好一些



    # -*- coding: utf-8 -*-
    import win32com,re
    from win32com.client import Dispatch,constants
    
    word = win32com.client.Dispatch('word.application')
    doc = word.Documents.Open('E:\final.doc')
    
    t=doc.Tables[0]
    print(type(t))
    tt = str(t)
    strs=tt.split('')
    print(strs[5])
    print strs
    
    
    doc.Close()
    word.Quit()

    结果:

    <type 'instance'>
    11
    ['00 ', '01 ', '02 ', ' ', '10 ', '11 ', '12 ', ' ', '20 ', '21 ', '22 ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '']

    上面的结果不好判断 还是用docx读取更好一些



    下面是读取docx的一个表格的值(doc转docx) 然后替换另外一个模板文件(doc)中的标签的值(biaoqian)最后另存成final

    #coding:utf-8
    import win32com
    from win32com.client import Dispatch
    from docx import Document
    
    def parse_docx(f):
      d = Document(f)
      t0 = d.tables[0]
      name = t0.cell(1, 1).text
      return name
    
    if __name__ == "__main__":
        w = win32com.client.Dispatch('Word.Application')
        va = parse_docx('E:\1.docx')
        filename2 = "E:\2.doc"
        doc = w.Documents.Open(FileName=filename2)
        w.Selection.Find.ClearFormatting()
        w.Selection.Find.Replacement.ClearFormatting()
        w.Selection.Find.Execute("biqoqian", False, False, False, False, False, True, 1, True, va, 2)
        doc.SaveAs ('E:\' + str ("final") + '.doc')  # 另存成另一个表
        doc.Close ()





  • 相关阅读:
    在终端聊天
    Vue双向数据绑定的原理
    手动封装on,emit,off
    浅谈Vue中组件传值的几种方式
    常见的一些性能优化的小方法
    常见的一些JS兼容问题
    移动布局的方法
    移动布局的方法
    快速、高效的学习vuex
    移动端300ms延迟原因及解决方案
  • 原文地址:https://www.cnblogs.com/hanxing/p/7018488.html
Copyright © 2011-2022 走看看