精华内容
下载资源
问答
  • Python word

    千次阅读 2010-05-14 12:54:00
    超群.com的博客Python转换office word文件为HTML这里测试的环境是:windows xp,office 2007,python 2.5.2,pywin32 build213,原理是利用win32com接口直接调用officeAPI,好处是简单、兼容性好,只要office能处理的,...
    
    

    Python转换office word文件为HTML

    这里测试的环境是:windows xp,office 2007,python 2.5.2,pywin32 build 213,原理是利用win32com接口直接调用office API,好处是简单、兼容性好,只要office能处理的,python都可以处理,处理出来的结果和office word里面“另存为”一致。

    #!/usr/bin/env python
    
     
    #coding=utf-8
     
    from win32com import client as wc
     
    word = wc.Dispatch ( 'Word.Application' )
     
    doc = word.Documents .Open ( 'd:/labs/math.doc' )
     
    doc.SaveAs ( 'd:/labs/math.html' , 8 )
     
    doc.Close ( )
     
    word.Quit ( )

    关键的就是doc.SaveAs(‘d:/labs/math.html’, 8)这一行,网上很多文章写成:doc.SaveAs(‘d:/labs/math.html’, win32com.client.constants.wdFormatHTML),直接报错:

    AttributeError: class Constants has no attribute ‘wdFormatHTML’

    当然你也可以用上面的代码将word文件转换成任意格式文件(只要office 2007支持,比如将word文件转换成PDF文件,把8改成17即可),下面是office 2007支持的全部文件格式对应表:

    wdFormatDocument                    =  0
    wdFormatDocument97 = 0
    wdFormatDocumentDefault = 16
    wdFormatDOSText = 4
    wdFormatDOSTextLineBreaks = 5
    wdFormatEncodedText = 7
    wdFormatFilteredHTML = 10
    wdFormatFlatXML = 19
    wdFormatFlatXMLMacroEnabled = 20
    wdFormatFlatXMLTemplate = 21
    wdFormatFlatXMLTemplateMacroEnabled = 22
    wdFormatHTML = 8
    wdFormatPDF = 17
    wdFormatRTF = 6
    wdFormatTemplate = 1
    wdFormatTemplate97 = 1
    wdFormatText = 2
    wdFormatTextLineBreaks = 3
    wdFormatUnicodeText = 7
    wdFormatWebArchive = 9
    wdFormatXML = 11
    wdFormatXMLDocument = 12
    wdFormatXMLDocumentMacroEnabled = 13
    wdFormatXMLTemplate = 14
    wdFormatXMLTemplateMacroEnabled = 15
    wdFormatXPS = 18

    照着字面意思应该能对应到相应的文件格式,如果你是office 2003可能支持不了这么多格式。word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字 8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用 wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML 明显比wdFormatHTML要干净许多。

    当然你也可以用任意一种语言通过com来调用office API,比如PHP.

     

    =========================================

    使用 python 写 COM

     

    2009年09月03日 星期四 下午 07:01

    from : http://www.cppblog.com/bigsml/archive/2008/08/14/58851.html

    Python 支持Com调用(client com) 以及撰写COM 组件(server com).
    1. com 调用示例(使用Windows Media Player 播放音乐)

    from win32com.client import Dispatch
    mp
    = Dispatch( " WMPlayer.OCX " )
    tune
    = mp.newMedia( " C:/WINDOWS/system32/oobe/images/title.wma " )
    mp.currentPlaylist.appendItem(tune)
    mp.controls.play()


    2. com server 的编写
    主要可以参考 <<Python Programming on Win32 之 Chapter 12 Advanced Python and COM http://oreilly.com/catalog/pythonwin32/chapter/ch12.html >>
    示例(分割字符串)
    - 代码

    class PythonUtilities:
         _public_methods_
    = [ ' SplitString ' ]
         _reg_progid_
    = " PythonDemos.Utilities "
        
    # NEVER copy the following ID
         # Use "print pythoncom.CreateGuid()" to make a new one.
         _reg_clsid_ = " {41E24E95-D45A-11D2-852C-204C4F4F5020} "
        
        
    def SplitString(self, val, item = None):
            
    import string
            
    if item != None: item = str(item)
            
    return string.split(str(val), item)

    # Add code so that when this script is run by
    #
    Python.exe, it self-registers.
    if __name__ == ' __main__ ' :
        
    print " Registering COM server "
        
    import win32com.server.register
         win32com.server.register.UseCommandLine(PythonUtilities)


    - 注册/注销Com

    Command-Line Option

    Description

     

    The default is to register the COM objects.

    --unregister

    Unregisters the objects. This removes all references to the objects from the Windows registry.

    --debug

    Registers the COM servers in debug mode. We discuss debugging COM servers later in this chapter.

    --quiet

    Register (or unregister) the object quietly (i.e., don't report success).


    - 使用COM
    可以在python 命令行下运行
    >>> import win32com.client
    >>> s = win32com.client.Dispatch( " PythonDemos.Utilities " )
    >>> s.SplitString( " a,b,c " , " , " )
    ((u
    ' a ' , u ' a,b,c ' ),)
    >>>


    3. python server com 原理
    其实在注册表中查找到python com 的实现内幕

    Windows Registry Editor Version 5.00

    [ HKEY_CLASSES_ROOT/CLSID/{41E24E95-D45A-11D2-852C-204C4F4F5020} ]
    @
    = " PythonDemos.Utilities "

    [ HKEY_CLASSES_ROOT/CLSID/{41E24E95-D45A-11D2-852C-204C4F4F5020}/Debugging ]
    @
    = " 0 "

    [ HKEY_CLASSES_ROOT/CLSID/{41E24E95-D45A-11D2-852C-204C4F4F5020}/Implemented Categories ]

    [ HKEY_CLASSES_ROOT/CLSID/{41E24E95-D45A-11D2-852C-204C4F4F5020}/Implemented Categories/{B3EF80D0-68E2-11D0-A689-00C04FD658FF} ]

    [ HKEY_CLASSES_ROOT/CLSID/{41E24E95-D45A-11D2-852C-204C4F4F5020}/InprocServer32 ]
    @
    = " pythoncom25.dll "
    " ThreadingModel " = " both "

    [ HKEY_CLASSES_ROOT/CLSID/{41E24E95-D45A-11D2-852C-204C4F4F5020}/LocalServer32 ]
    @
    = " D://usr//Python//pythonw.exe / " D://usr//Python//lib//site-packages//win32com//server//localserver.py/ " {41E24E95-D45A-11D2-852C-204C4F4F5020} "

    [ HKEY_CLASSES_ROOT/CLSID/{41E24E95-D45A-11D2-852C-204C4F4F5020}/ProgID ]
    @
    = " PythonDemos.Utilities "

    [ HKEY_CLASSES_ROOT/CLSID/{41E24E95-D45A-11D2-852C-204C4F4F5020}/PythonCOM ]
    @
    = " PythonDemos.PythonUtilities "

    [ HKEY_CLASSES_ROOT/CLSID/{41E24E95-D45A-11D2-852C-204C4F4F5020}/PythonCOMPath ]
    @
    = " D:// "

    inproc server 是通过pythoncom25.dll 实现
    local server 通过localserver.py 实现
    com 对应的python 源文件信息在 PythonCOMPath & PythonCOM

    4. 使用问题
    用PHP 或者 c 调用com 的时候

    <? php
    $com = new COM( " PythonDemos.Utilities " );
    $rs = $com -> SplitString( " a b c " );
    foreach ( $rs as $r )
        
    echo $r . " /n " ;
    ?>

    会碰到下面的一些错误.
    pythoncom error: PythonCOM Server - The 'win32com.server.policy' module could not be loaded.
    <type 'exceptions.ImportError'>: No module named server.policy pythoncom error: CPyFactory::CreateInstance failed to create instance. (80004005)


    可以通过2种方式解决:
    a. 设置环境 PYTHONHOME = D:/usr/Python
    另外在c ++ 使用python 的时候, 如果import module 出现错误 'import site' failed; use -v for traceback 的话, 也可以通过设置这个变量解决.

    b. 为com 生产exe, dll 可执行文件, setup.py 代码如下 :

    from distutils.core import setup
    import py2exe

    import sys
    import shutil

    # Remove the build tree ALWAYS do that!
    shutil.rmtree( " build " , ignore_errors = True)

    # List of modules to exclude from the executable
    excludes = [ " pywin " , " pywin.debugger " , " pywin.debugger.dbgcon " , " pywin.dialogs " , " pywin.dialogs.list " ]

    # List of modules to include in the executable
    includes = [ " win32com.server " ]

    # ModuleFinder can't handle runtime changes to __path__, but win32com uses them
    try :
        
    # if this doesn't work, try import modulefinder
         import py2exe.mf as modulefinder
        
    import win32com
        
        
    for p in win32com. __path__ [ 1 :]:
             modulefinder.AddPackagePath(
    " win32com " , p)
        
        
    for extra in [ " win32com.shell " , " win32com.server " ]: # ,"win32com.mapi"
             __import__ (extra)
             m
    = sys.modules[extra]
            
    for p in m. __path__ [ 1 :]:
                 modulefinder.AddPackagePath(extra, p)

    except ImportError:
        
    # no build path setup, no worries.
         pass

    # Set up py2exe with all the options
    setup(
         options
    = { " py2exe " : { " compressed " : 2 ,
                              
    " optimize " : 2 ,
                              
    # "bundle_files": 1,
                               " dist_dir " : " COMDist " ,
                              
    " excludes " : excludes,
                              
    " includes " : includes}},
        
    # The lib directory contains everything except the executables and the python dll.
         # Can include a subdirectory name.
         zipfile = None,
         com_server
    = [ 'PythonDemos ' ], # 文件名!!
         )



    ref:
    http://oreilly.com/catalog/pythonwin32/chapter/ch12.html
    http://blog.donews.com/limodou/archive/2005/09/02/537571.aspx

     


    展开全文
  • 原标题:python Word 表格转 Excel了解下载RPA请访问:www.i-search.com.cnword 转 excel 代码块分享:使用前需要手动安装一下 python-docx 注意不是直接安装 doxc,目前 docx 好像没兼容 py3x,步骤如下进入网址...

    原标题:python Word 表格转 Excel

    了解下载RPA请访问:www.i-search.com.cn

    word 转 excel 代码块分享:

    使用前需要手动安装一下 python-docx 注意不是直接安装 doxc,目前 docx 好像没兼容 py3x,步骤如下

    进入网址https://www.lfd.uci.edu/~gohlke/pythonlibs/

    CTRL+F 查找 python_doxc 下载 python_docx‑0.8.10‑py2.py3‑none‑any.whl

    版本号可能会有变化无所谓

    进入命令窗口 cd 到下载的 whl 文件目录下,输入命令

    pip install python_docx-0.8.10-py2.py3-none-any.whl

    代码如下:

    from docx import Document

    import pandas as pd

    def word_to_excel(word_path, excel_path):

    word_lis = []

    doc = Document(word_path)

    for tb in doc.tables: # 遍历多个表

    for row in tb.rows: # 遍历表的每一行

    li = []

    for cell in row.cells: # 遍历每一行的单元格

    text = ""

    for p in cell.paragraphs: # 遍历单元格中的每一段(回车符)

    text += p.text

    li.append(text)

    word_lis.append(li)

    # list转dataframe

    df = pd.DataFrame(word_lis)

    # 保存到本地excel

    df.to_excel(excel_path, index=False, header=0) # 若不需要将第一行设为表头 header = None

    # 执行方法

    word_path = 'D:\\wordtoexcel\\wordtoexcel.docx'

    excel_path = 'D:\\wordtoexcel\\wordtoexcel.xlsx'

    word_to_excel(word_path, excel_path)

    运行结果展示

    责任编辑:

    展开全文
  • python word自动写入模板 搭配博客内容使用 后续将会持续更新excel,ppt,爬虫,人工智能等相关内容,敬请关注
  • Hello Python Word

    2018-05-31 12:43:28
    1.开始学python第一天,对...2.打印Hello Python Word! massage = “hello python word!” print(massage.title()) 3.执行脚本 4.注释   massage massage是一个变量,=后面为变量的内容 print(mas...

    1.开始学python第一天,对python充满好奇,在我们运维的世界里python依然无处不在,无所不能。

    2.打印Hello Python Word!

    massage = “hello python word!”
    print(massage.title())

    3.执行脚本

    4.注释

     

    massage massage是一个变量,=后面为变量的内容
    print(massage) 打印这个变量
    title() 以首字母大写的方式显示每个单词

     

    展开全文
  • 接着前一节内容《大话 Pythonpython word 应用 – 做一个最简单的 word 文档》,这一节说一下对 word 文档内容的常规操作。如何设置字体大小、字体样式、字体颜色、段落格式等针对文档内容的操作。 1、导入相关...

    接着前一节内容《大话 Python:python word 应用 – 做一个最简单的 word 文档》,这一节说一下对 word 文档内容的常规操作。如何设置字体大小、字体样式、字体颜色、段落格式等针对文档内容的操作。

    1、导入相关依赖
    1# 字体设置函数
    2from docx.oxml.ns import qn
    3# word 文档对象
    4from docx import Document
    5# 字体颜色对象
    6from docx.shared import RGBColor
    7# 缩进字符设置
    8from docx.shared import Inches
    
    2、添加下划线,加粗
    1# 添加内容
    2paragraph = doc_.add_paragraph()
    3run_ = paragraph.add_run("Python 集中营")
    4# 获取字体对象
    5font_ = run_.font
    6# 设置下划线
    7font_.underline = True
    8# 设置加粗
    9font_.bold = True
    
    3、设置字体颜色
    1# 添加内容
    2paragraph = doc_.add_paragraph()
    3run_ = paragraph.add_run("Python 集中营")
    4# 获取字体对象
    5font_ = run_.font
    6# 设置字体颜色
    7font_.color.rgb = RGBColor(0xFF,0x00,0x00)
    
    4、设置字体大小
    1# 添加内容
    2paragraph = doc_.add_paragraph()
    3run_ = paragraph.add_run("Python 集中营")
    4# 获取字体对象
    5font_ = run_.font
    6# 设置字体大小
    7font_.size = Pt(20)
    
    5、设置段落格式
    1# 添加内容
     2content_ ="Hello World"
     3paragraph = doc_.add_paragraph(content_)
     4# 获取格式对象
     5paragraph_format = paragraph.paragraph_format
     6# 设置首行缩进
     7paragraph_format.first_line_indent = Inches(0.2)
     8# 设置段前距,单位为英镑
     9paragraph_format.space_after = Pt(10)
    10# 设置段后距,单位为英镑
    11paragraph_format.space_before = Pt(5)
    
    6、插入表格
     1# 添加表格
     2table_ = doc_.add_table(rows=2, cols=2, style="Medium Grid 1 Accent 1")
     3# 填写第一行第一列内容
     4table_.cell(0,0).text ="公众号【Python 集中营】"
     5# 填写第一行第二列内容
     6table_.cell(0,1).text ="技术分享、实战累积、学习社区"
     7# 填写第二行第一列内容
     8table_.cell(1,0).text ="描述"
     9# 填写第二行第二列内容
    10table_.cell(1,1).text ="人生苦短、我爱 Python"
    
    7、插入图片
    1# 添加图片、width 属性设置大小
    2doc_.add_picture(r"/usr/load/download/test.png", width=Inches(4.25))
    3# 保存文档
    4doc_.save('Python集中营--Word 内容格式.docx')
    

    更多精彩前往微信公众号【Python 集中营】,专注后端编程实战,原创文章每天更新!

    在这里插入图片描述

    展开全文
  • Python word转html

    千次阅读 2019-08-02 13:30:23
    Python word转html from win32com.client import Dispatch def doc2html(input, output): w = Dispatch('Word.Application') try: doc = w.Documents.Open(input, ReadOnly=1) doc.SaveAs(...
  • python Word模块

    2020-03-06 23:06:03
    相关包 python-docx ...python读取Word文档内容 doc.paragraphs 得到一个列表,包含了每个段落实例 from docx import Document doc = Document("lian.docx") print(doc.paragraphs) para...
  • Python Wordvector (二)

    2018-07-31 22:59:00
    Python Wordvector (二) import jieba import pandas as pd txt = open("hlm.txt", "r", encoding="gb18030").read() from gensim.models.word2vec import Word2Vec ...
  • 介绍舍友从网上下载的word题库文档很乱,手动改了大半天才改了一点,想起python是大名鼎鼎的自动化脚本,于是乎开始了pythonword的一顿瞎操作。分析需求对文档中的内容进行分析,只留下题目,选项,并且题号要从1...
  • python Word 文档

    千次阅读 2018-09-21 13:44:35
    利用 python-docx 模块, Python 可以创建和修改 Word 文档,它带有.docx 文件扩展名。运行 pip install python-docx,可以安装该模块。 注意:OSI 参考模型最初是在 1983 年由国际标准化组织出版,标准号为 ISO ...
  • python word2vector (一)

    2018-07-31 22:58:00
    python word2vector (一) from gensim.test.utils import common_texts, get_tmpfile from gensim.models import Word2Vec path = get_tmpfile("word2vec.model") mo...
  • 前言本文的文字及图片来源于...docx随着近几年Python语言的崛起,它在办公自动化方面的优势也被挖掘的淋漓尽致,而对于办公自动化来说,Word文档是不可或缺的重要组成部分,那么Python是如何操作Word文档的呢?在Pyt...
  • **设置字体**```from docx.shared import Ptfile=docx.Document() #创建内存中的word文档对象#设置字体样式(字体大小与字体样式)mystyle = file.styles["Header"]font = mystyle.fontfont.size = Pt(12.5)font.name ...
  • python word转pdf

    千次阅读 2019-04-29 17:30:00
    使用python win32 库 调用word底层vba,将word转成pdf 安装pywin32 pip install pywin32 python代码 from win32com.client import gencache from win32com.client import constants, gencache def createPdf...
  • 原理使用python win32 库 调用word底层vba,将word转成pdf安装pywin32pip install pywin32python代码from win32com.client import gencachefrom win32com.client import constants, gencachedef createPdf(wordPath,...
  • python word读取

    2016-10-19 11:03:49
    之前尝试采用win32com读取,似乎win32com需要...这次采用的是python-docx包,下面的demo演示读取word的内容并打印出来import docxdocName = "c:\\test.docx" fullText = [] doc = docx.Document(docName) paras = doc
  • 当实现word文档转换未pdf格式时,单个文档单次执行没有任何问题,但是当将一个文件夹下的目录进行批量转换时,遇到报错:Traceback (most recent call last):File "e:/workspace/python/wordtopdf.py", line 33, in ...
  • python word写入

    2019-08-30 17:59:11
      from docx import Document from docx.shared import Inches ...document.add_heading(u'这是标题', 2) #插入标题 document.add_paragraph(u'有个图片') #...document.save('./test.docx') #保存word  
  • 使用python操作Word用到了win32com模块,我们现在就要介绍一下pythonWord的基本操作,文章涉及到如何与Word程序建立连接、如果与Word文档建立连接的,以及对Word文档的基本操作。1. 首先,我们必须要引入win32com...
  • Python word转PDF

    千次阅读 2019-06-12 18:56:58
    from win32com.client import Dispatch from os import walk wdFormatPDF = 17 def doc2pdf(input_file): word = Dispatch('Word.Application') doc = word.Documents.Open(input_file) doc.SaveAs(i...
  • import win32comfrom win32com.client import Dispatch, constantsw = win32com.client.Dispatch('Word.Application')# 或者使用下面的方法,使用启动独立的进程:# w = win32com.client.DispatchEx('Word....
  • python word 创建超链接

    千次阅读 2019-11-26 16:34:14
    import docx from docx.enum.text import WD_ALIGN_...https://github.com/python-openxml/python-docx/issues/74 https://www.cnblogs.com/z123zero/p/10770097.html#%E5%AF%B9%E8%B1%A1%E5%85%B3%E7%B3%BB
  • python word2vec

    2017-08-16 13:46:54
    from gensim.models import Word2Vec from gensim.models.word2vec import LineSentencedef gen_embeddings(in_file, out_file, size=100): corpus = LineSentence(in_file) model = Word2Vec( sente
  • python word解析 嵌套表格

    千次阅读 2019-09-17 10:43:28
    研究生一直做文档解析相关,但是局限于段落文本内容, 对于表格...可以使用python-docx进行解析: import docx from docx.document import Document as _Document from docx.oxml.text.paragraph import CT_P fro...
  • *- coding: utf-8 -*-"""Created on Sat Oct 24 17:21:31 2020pip install -i https://mirrors.aliyun.com/pypi/simple/ docx参考文档 https://python-docx.readthedocs.io/en/latest/@author: Administrator"""f...
  • 原理使用python win32 库 调用word底层vba,将word转成pdf安装pywin32pip install pywin32python代码from win32com.client import gencachefrom win32com.client import constants, gencachedef createPdf(wordPath,...
  • import pandas as pddef word_to_excel(word_path, excel_path):word_lis = []doc = Document(word_path)for tb in doc.tables: # 遍历多个表for row in tb.rows: # 遍历表的每一行li = []for cell in row.cells: # ...
  • 是的,我们能做到。Referenceimport docxfrom docx.enum.dml import MSO_THEME_COLOR_INDEXdef add_hyperlink(paragraph, text, url):# This gets access to the document.xml.rels file and gets a new relation id...
  • # -*- coding: UTF-8 -*-import sysfrom copy import deepcopyimport xlwingsfrom docx import Documentfrom docx.oxml.ns import nsdeclsfrom docx.oxml import parse_xmldef copy_table_after(table, paragraph):t...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,881
精华内容 7,152
热门标签
关键字:

pythonword

python 订阅