用户登录
用户注册

分享至

python操作word文档 python操作word文档表格

  • 作者: 亖呉?盀
  • 来源: 51数据库
  • 2020-04-21

>>>app=my.Office.Word.GetInstance()

>>>doc=app.Documents[0]

>>>printdoc.Name

VBA工具集.doc

>>>doc.Tables.Count

2

>>>table=doc.Tables[1]

>>>table.Cell(1,1).Select()

>>>app.Selection.MoveEnd(Unit=12,Count=4)

4

>>>app.Selection.Cells.Shading.Texture=-10

>>>

1.my.Office.Word.GetInstance()用win32com得到Word的Application对象的实例

2.我所使用的样本word文件中包含两个Table第二个Table是想要修改的

3.table.Cell(1,1).Select()用于选中这个样表的第一个单元格

4.app.Selection.MoveEnd用于获得向右多选取4个单元格,wdCell=12,用于指示按单元格移动

5.app.Selection.Cells.Shading.Texture = -10用于执行阴影底纹的设置工作,wdTextureDiagonalUp=-10是一个代表斜向右上的底纹样式的常数

python操作word文档,如何合并单元格

>>>app=my.Office.Word.GetInstance()

>>>doc=app.Documents[0]

>>>table=doc.Tables[1]

>>>table.Cell(1,1).Select()

>>>app.Selection.MoveDown(Unit=5,Count=2,Extend=1)

>>>app.Selection.Cells.Merge()

>>>

  1. my.Office.Word.GetInstance()用win32com得到Word的Application对象的实例

  2. 我所使用的样本word文件中包含两个Table第二个Table是想要修改的

  3. table.Cell(1,1).Select()用于选中这个样表的第一个单元格

  4. app.Selection.MoveDown用于获得向下多选取3个单元格

  5. app.Selection.Cells.Merge()用于执行合并工作

python新建word文档

话说,你是在自己电脑上好好的,然后突然不行了

还是在别人电脑不行了?

word.displayalerts

这个是2013的属性

Microsoft Word 14.0,这是2010版更多

我一直在自己电脑上使用的,用的是2010版的office

电脑上同时安装了2013版的,但从来没用过啊。

哦,呵呵呵,这个我知道的,你装过2013,这个代码才跑得起来的

之前你word.application的时候,系统给你适配到了2013,你的程序就能跑

现在它不知道为啥给你适配到2010了,这个属性就没了

删掉这一行就是了

--我把这行删了,然后

AttributeError: '<win32com.gen_py.Microsoft Word 14.0 Object Library._Application instance at 0x52122704>' object has no attribute 'visible'

它连visible都识别不了了 飙泪ing。。。

额。。。那就不是这个问题,代码恢复回来

重启系统

刚试了,还是不行。。。

我刚查了一下,有人说这么解决:

问题解决方法:删除该库的.pyc文件,重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可

OK了!我将win32库重新安装了下,果然成功了!非常感谢!

python调用com,如何完成word表格操作

word中doc这个格式的文件是微软特有格式,微软没有向外公开任何的api接口文档,

只能通过微软提供的OLE组件来提其COM接口,只要你的机器上安装了Offices完整的办公软件,在安装目录下面有个MSWORD.OLB组件,导入这个即可。

1、相关操作Excel有MSPPT.OLB,EXCEL.exe等。

我对这个组件不熟悉,能否提供具体的代码?或者说我需要知道关于操作word的函数、方法,有什么好的参考资料吗?

如何用python读取word

使用Python的内部方法open()读取文本文件

try:

f=open('/file','r')

print(f.read())

finally:

iff:

f.close()

如果读取word文档推荐使用第三方插件,python-docx 可以在官网上下载

使用方式

#-*-coding:cp936-*-

importdocx

document=docx.Document(文件路径)

docText='\n\n'.join([

paragraph.text.encode('utf-8')forparagraphindocument.paragraphs

])

printdocText

python能打开word文档吗

首先下载安装win32com

from win32com import client as wc

word = wc.Dispatch('Word.Application')

doc = word.Documents.Open('c:/test')

doc.SaveAs('c:/test.text', 2)

doc.Close()

word.Quit()

这种方式产生的text文档,不能用python用普通的r方式读取,为了让python可以用r方式读取,应当写成

doc.SaveAs('c:/test', 4)

注意:系统执行完成后,会自动产生文件后缀txt(虽然没有指明后缀)。

在xp系统下面,应当,

open(r'c:\text','r')

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.

from win32com import client as wc

word = wc.Dispatch('Word.Application')

doc = word.Documents.Open(r'c:/test1.doc')

doc.SaveAs('c:/test1.text', 4)

doc.Close()

import re

strings=open(r'c:\test1.text','r').read()

result=re.findall('\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)',strings)

chan=re.sub('\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)','()',strings)

question=open(r'c:\question','a+')

question.write(chan)

question.close()

answer=open(r'c:\answeronly','a+')

for i,a in enumerate(result):

m=re.search('[A-D]',a)

answer.write(str(i+1)+' '+m.group()+'\n')

answer.close()

chan=re.sub(r'\xa3\xa8\s*[A-D]\s*\xa3\xa9','()',strings)

#不要(),容易引起歧义。

如何在 Linux 上使用 Python 读取 word 文件信息

必须说明:不同于Illustrator、InDesign、CorelDRAW、OpenOffice DRAW、Incscape等工具,Word是流动分页的,文件内容本身并不存储分页结果。具体分页时断在哪里、最后分出多少页,都需要现场渲染所有的图文内容之后才能确定。

(简而言之就是:Word文件中仅包含了一行一行的文本,与页面设置中指定的页面尺寸。Word每次打开文件时都会一行一行“摆放”文本数据,发现一页装不下了自动新开一页。当然真正的Word渲染引擎肯定有更复杂的行为。)

从.doc/.docx文件中直接读出页面数量,这本身就是个伪命题。所以千万别在“直接读取页面数量”这个方向上寻求方案——软件开发的技法不好可以改正,但路线错了必死无疑!

你需要调动一套能够真的把Word文件的内容渲染出来的工具(支持二次开发的)。只有把Word文件的所有内容渲染成为可以观看的图形,才能准确得知页面的总数。在Linux上很可能LibreOffice可以吧。而在Windows上就当然是用Word本身了。

注意Word的分页结论是没有保证的。缺少字体、字形不同、软件环境不同等各种原因,都会造成不同电脑上打开同一个Word文件的页数不一致。这一点对服务器也没有例外。得到了页数也只能参考使用,而不要100%信赖。

python如何读取word文件

>>>defPrintAllParagraphs(doc):

count=doc.Paragraphs.Count

foriinrange(count-1,-1,-1):

pr=doc.Paragraphs[i].Range

printpr.Text

>>>app=my.Office.Word.GetInstance()

>>>doc=app.Documents[0]

>>>PrintAllParagraphs(doc)

1.什么是域

域应用基础

>>>

@staticmethod

defGetInstance():

u'''获取Word应用程序的Application对象'''

importwin32com.client

returnwin32com.client.Dispatch('Word.Application')

  1. my.Office.Word.GetInstance的方法实现如上,是一个使用win32com操纵Word Com的接口的封装

  2. 所有Paragraph即段落对象,都是通过Paragraph.Range.Text来访问它的文字的

转载请注明出处51数据库 » python操作word文档 python操作word文档表格

软件
前端设计
程序设计
Java相关