如何使用Perl在Word文档中提取数据?

时间:2009-07-14 10:56:50

标签: perl ms-word

如何使用Perl从word doc中提取数据?

5 个答案:

答案 0 :(得分:2)

如果您不在Windows上,我认为最好的方法可能是首先转换它。

如果您没有使用Windows且无法访问Win32::OLE,则可以使用OpenOffice to convert the documents

您可以将链接中的脚本包装到Perl程序中。虽然链接以PDF开头,但如果您阅读它可以将其转换为文本。另请参阅this stackoverflow post about converting doc and docx files

答案 1 :(得分:1)

如果脚本要在安装了Word的Windows机器上运行,则可以使用Win32 :: OLE。

您使用的是什么平台?也许可以调用antiword

答案 2 :(得分:1)

use Win32::OLE;
use Win32::OLE::Enum;

$document = Win32::OLE -> GetObject($ARGV[1]);
open (FH,">$ARGV[0]");

print "Extracting Text ...\n";

$paragraphs = $document->Paragraphs();
$enumerate = new Win32::OLE::Enum($paragraphs);
while(defined($paragraph = $enumerate->Next()))
{
    $style = $paragraph->{Style}->{NameLocal};
    print FH "+$style\n";
    $text = $paragraph->{Range}->{Text};
    $text =~ s/[\n\r]//g;
    $text =~ s/\x0b/\n/g;
    print FH "=$text\n";
}

here

被盗

答案 3 :(得分:0)

在Windows上,您最好使用COM接口来访问Word功能。

如果你想跨平台思考执行“catdoc”或libwv。

答案 4 :(得分:0)

Word文档不再是平面文件。找到一个.docx,用.zip扩展名重命名它,然后你可以打开它并在里面逛一逛来了解事情的布局。我普遍同意,虽然微软已经提供了这样做的方法。