加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 将Word文档或docx文件转换为文本文件?

发布时间:2020-12-15 22:00:43 所属栏目:大数据 来源:网络整理
导读:我需要一种方法来将.doc或.docx扩展名转换为.txt,而无需安装任何内容.我也不想手动打开Word这样做显然.只要它在汽车上运行. 我认为Perl或VBA都可以做到这一点,但是我也找不到任何在线的东西. 有什么建议么? 解决方法 请注意,Microsoft Office应用程序的一个
我需要一种方法来将.doc或.docx扩展名转换为.txt,而无需安装任何内容.我也不想手动打开Word这样做显然.只要它在汽车上运行.

我认为Perl或VBA都可以做到这一点,但是我也找不到任何在线的东西.

有什么建议么?

解决方法

请注意,Microsoft Office应用程序的一个很好的信息来源是对象浏览器.您可以通过工具→宏→Visual Basic编辑器访问它.在编辑器中,点击F2浏览Microsoft Office应用程序提供的接口,方法和属性.

以下是使用Win32::OLE的示例:

#!/usr/bin/perl

use strict;
use warnings;

use File::Spec::Functions qw( catfile );

use Win32::OLE;
use Win32::OLE::Const 'Microsoft Word';
$Win32::OLE::Warn = 3;

my $word = get_word();
$word->{Visible} = 0;

my $doc = $word->{Documents}->Open(catfile $ENV{TEMP},'test.docx');

$doc->SaveAs(
    catfile($ENV{TEMP},'test.txt'),wdFormatTextLineBreaks
);

$doc->Close(0);

sub get_word {
    my $word;
    eval {
        $word = Win32::OLE->GetActiveObject('Word.Application');
    };

    die "$@n" if $@;

    unless(defined $word) {
        $word = Win32::OLE->new('Word.Application',sub { $_[0]->Quit })
            or die "Oops,cannot start Word: ",Win32::OLE->LastError,"n";
    }
    return $word;
}
__END__

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读