Python 从MS-Word中提取数据
我正在寻找一种从Word文件中提取/刮取数据到数据库的方法。我们的公司程序在MS Word文件中记录了与客户的会议记录,主要是由于历史和惯性 我希望能够将这些会议记录中的行动项目拉入数据库,以便我们可以从web界面访问它们,将它们转换为任务,并在完成时更新它们 以下哪种方法是最好的:Python 从MS-Word中提取数据,python,vba,ms-word,pywin32,Python,Vba,Ms Word,Pywin32,我正在寻找一种从Word文件中提取/刮取数据到数据库的方法。我们的公司程序在MS Word文件中记录了与客户的会议记录,主要是由于历史和惯性 我希望能够将这些会议记录中的行动项目拉入数据库,以便我们可以从web界面访问它们,将它们转换为任务,并在完成时更新它们 以下哪种方法是最好的: VBA宏从Word内部创建CSV,然后上传到DB Word中连接到DB的VBA宏(如何从VBA连接到MySQL?) Python脚本通过Win32 COM然后上传到DB 最后一个对我很有吸引力,因为web界面是用D
sFile = "D:\temp\output.txt"
fnum = FreeFile
Open sFile For Output As #fnum
num_rows = Application.ActiveDocument.Tables(2).Rows.Count
For n = 1 To num_rows
Descr = Application.ActiveDocument.Tables(2).Cell(n, 2).Range.Text
Assign = Application.ActiveDocument.Tables(2).Cell(n, 3).Range.Text
Target = Application.ActiveDocument.Tables(2).Cell(n, 4).Range.Text
If Target = "" Then
ExportText = ""
Else
ExportText = Descr & Chr(44) & Assign & Chr(44) & _
Target & Chr(13) & Chr(10)
Print #fnum, ExportText
End If
Next n
Close #fnum
小控制字符框怎么了?Word中是否出现了某种字符代码?我想说,看看右边的相关问题-->
对于python路线,似乎有一些不错的想法。嗯,我从来没有编写过Word脚本,但是使用win32com做简单的事情非常容易。比如:
from win32com.client import Dispatch
word = Dispatch('Word.Application')
doc = word.Open('d:\\stuff\\myfile.doc')
doc.SaveAs(FileName='d:\\stuff\\text\\myfile.txt', FileFormat=?) # not sure what to use for ?
这是未经测试的,但我认为类似的操作只需打开文件并将其保存为纯文本(前提是您可以找到正确的文件格式)——然后您可以将文本读入python并从中进行操作。可能也有一种方法可以直接抓取文件的内容,但我现在还不知道;文档可能很难找到,但如果您有VBA文档或经验,您应该能够将它们带到各个领域
看看这篇文章:向下滚动到COMTools.py;这里有一些很好的例子
您还可以运行makepy.py(pythonwin发行版的一部分)为可用的COM函数生成python“签名”,然后将其作为一种文档进行查看。将文件另存为xml怎么样。然后使用python或其他方法,将数据从word中提取出来并放入数据库 Word有一个小标记,它放在表格中每个文本单元格的末尾 它就像段落中的段落结束标记一样:用于存储整个段落的格式 只需使用Left()函数将其去掉,即
Left(Target, Len(Target)-1))
顺便说一下,不是
num_rows = Application.ActiveDocument.Tables(2).Rows.Count
For n = 1 To num_rows
Descr = Application.ActiveDocument.Tables(2).Cell(n, 2).Range.Text
试试这个:
For Each row in Application.ActiveDocument.Tables(2).Rows
Descr = row.Cells(2).Range.Text
你可以使用OpenOffice。它可以打开word文件,也可以运行python宏。可以通过编程将word文档保存为HTML,并将包含的表导入Access。这只需要很少的努力。问题“用python从MS word文件中提取文本”是关于在linux环境中工作的。像antiword这样的工具在Windows下除了cygwin之外是不可用的,而这张海报愿意做Word的COM脚本。如果你没有什么好说的。。。对于这个问题,一些投票率较高的答案根本不是linux特有的。我想你错过了。谢谢你,乔尔!我想我可以用Left()去掉细胞末端的标记,但这对我来说并不优雅。另外,谢谢你的另一个指针。我不是专业的程序员,也绝对不是VBA大师。