搜索
aardio官方社区 门户 查看主题

批量word文档转换为txt文本文档

发布者: look | 发布时间: 2011-10-7 19:43| 查看数: 34198| 评论数: 72|帖子模式

本帖最后由 look 于 2011-11-19 13:14 编辑


import com;
import fsys;
import process;
import fsys.dlg;

io.open();
io.print(
"正在关闭已经打开的word...")

process.kill(
"winword.exe");
sleep(2000)

class wordApplication{
   
ctor( visible =0 ){
        
this =..com.CreateObject("Word.Application")     
        
assert(this,"Word应用程序未能打开!" )   
        
this.Visible = visible
    };
    load =
function(filePath,visible=0,readOnly=0){
        fullpath =
assert(..io.exist(filePath), "文档“"+filePath+"”不存在,word已关闭!" )
        
var doc = this.Documents.Open(fullpath,visible,readOnly)
        
return assert(doc,"打开文档“"+filePath+"”失败,word已关闭!")
    }
}

//创建word对象
var wdApp = wordApplication();
math.randomize();

var docToTxt=function(file,path){

   
//打开word文档
    var doc = wdApp.load(file);
   
   
//获取DOC文件名
    var strdocname = wdApp.ActiveDocument.Name;
   
   
//判断是否临时文件
    var istempdoc=string.match(strdocname,"^<\~\$>");
   
if(istempdoc){
        doc.close(0);
        
return ;
    }
   
   
//转化文件名为txt文件名
    var txtdocname = string.replace(strdocname,"\.doc$",".txt");
   
if(!txtdocname){
   
        
//获取首行文本   
        var strtopline=wdApp.ActiveDocument.Paragraphs(1).Range.Text
        
        
if(strtopline){
        
            
if(#strtopline>20){   
                strtopline=string.left(strtopline,8,
true);
            }
            
            
//文件名去除空格,中文空格,制表符,回车   
            txtdocname=string.replace(strtopline,'< >|< >|<\t>|<\r\n>',"");
            
            
//文件名中剔除非法字符
            txtdocname=string.replace(txtdocname,'[\\<\\>\\/\\\\\|\\:\\"\\"\\*\\?]',"");
            
            
if(!txtdocname){
               
//随机txt文件名
                txtdocname = string.random(math.random(1,10))++".txt"
            }
        }
    }
   
   
//另存为txt文档
    wdApp.ActiveDocument.SaveAs(path+txtdocname,2/*wdFormatText*/)
   
   
//关闭当前文档
    doc.close(0);
}

var opendir=fsys.dlg.opendir();
fsys.enum(  opendir,
            
"*.doc",
            
function(dir,file,fullpath){
               
if(file){
                    io.print(
"正在转换:"+dir++"   目录下的   "++file)                                    
                    io.print(
"")                    
                    docToTxt(fullpath,dir);
                }
            }
            ,
true
          );

io.print(
"转换完毕,谢谢使用!")
io.print(
"正在关闭word.............")

//退出WORD
wdApp.Quit() ;
wdApp=
null;
collectgarbage("collect")

execute("pause")
io.close();






评分

参与人数 4专家分 +200 银币 +96 收起 理由
crcc_3c + 5 很给力!
cjc0045 + 90 赞一个!
低调点 + 100 + 1 很给力!
quicker + 100

查看全部评分

最新评论

sphawkcn 发表于 2011-10-7 20:48:51

想问一下,这样的程序在运作过程中,会不会影响word本身的其他使用?比如我在运行这个程序的时候,同时在用word写文章。

想问一下,这样的程序在运作过程中,会不会影响word本身的其他使用?比如我在运行这个程序的时候,同时在用word写文章。
look 发表于 2011-10-7 21:09:41

[quote][size=2][color=#999999]sphawkcn 发表于 2011-10-7 20:48[/color] [url=forum.ph

sphawkcn 发表于 2011-10-7 20:48
想问一下,这样的程序在运作过程中,会不会影响word本身的其他使用?比如我在运行这个程序的时候,同时在用 ...

会影响的
下面这句的意思是获取当前活动文档的文件名
var strdocname = wdApp.ActiveDocument.Name;
fyy 发表于 2011-10-7 22:25:59

用vbs 好像也可以转 看看楼主用什么办法

用vbs 好像也可以转 看看楼主用什么办法
feixiang2920 发表于 2011-10-8 10:13:03

先瞧瞧{:3_48:}

先瞧瞧
nnlenx 发表于 2011-10-8 10:52:31

看看,肯定是好东西

看看,肯定是好东西
hgbuser 发表于 2011-10-8 14:08:44

应该有许多人需要!

应该有许多人需要!
influx 发表于 2011-10-8 16:36:12

看看,学习一下。谢谢楼主!

看看,学习一下。谢谢楼主!
nbhhs 发表于 2011-10-8 19:27:07

厉害,可以代替vba !!

厉害,可以代替vba
!!
xauto 发表于 2011-10-8 19:54:02

强势围观 - -

强势围观 - -
tigercc99 发表于 2011-10-9 09:02:56

看看怎么操作的!

看看怎么操作的!
Iamok 发表于 2011-10-9 09:27:01

看哈内容呀。

看哈内容呀。
aonoco 发表于 2011-10-9 12:50:20

强势围观 - -


强势围观 - -
tmmkl 发表于 2011-10-9 13:37:01

看看,学习学习,感谢感谢

看看,学习学习,感谢感谢
fanishare 发表于 2011-10-9 17:19:33

学习下,呵呵!

学习下,呵呵!
xauto 发表于 2011-10-9 21:25:56

[quote][size=2][color=#999999]sphawkcn 发表于 2011-10-7 20:48[/color] [url=forum.ph

sphawkcn 发表于 2011-10-7 20:48
想问一下,这样的程序在运作过程中,会不会影响word本身的其他使用?比如我在运行这个程序的时候,同时在用 ...
  1. io.open();
  2. io.print("正在关闭已经打开的word...")

  3. process.kill("winword.exe");
复制代码
sphawkcn 发表于 2011-10-9 21:30:05

其实我很想知道的是,如何在不安装word的电脑上提取word文件中的文本。

其实我很想知道的是,如何在不安装word的电脑上提取word文件中的文本。
d5d 发表于 2011-10-9 22:29:08

看代码学习学习

看代码学习学习
ghl781258 发表于 2011-10-10 15:16:28

强势围观者 杯具

强势围观者 杯具
1234下一页

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-9-25 19:32 , Processed in 0.046875 second(s), 19 queries , WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表