java用jacob批量word转xml

来源:互联网 发布:安全阀计算软件 编辑:程序博客网 时间:2024/06/11 02:22
try {

ArrayList<File> files =FileUtil.getListFiles("F:\\XXX");//xxx文件夹

for (File file : files) {

try {

ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
String inFile = file.getAbsolutePath(); // 指定要打开的word文件
File fileCopy=createFiles(file);//拷贝到另一个文件夹里面
String path=fileCopy+"/"+FileUtil.getFileNameNoEx(file.getName())+".xml";

app.setProperty("Visible", new Variant(false)); // 为false时设置word不可见,为true时是可见要不然看不到Word打开文件的過程
Dispatch docs = app.getProperty("Documents").toDispatch();
// 打开編輯器
Dispatch doc = Dispatch.invoke(
docs,
"Open",
Dispatch.Method,
new Object[] { inFile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch(); // 打开word文档

Dispatch.call(doc, "SaveAs", path, 11);// xml文件格式宏11
Dispatch.call(doc, "Close", false);
app.invoke("Quit", 0);
System.out.println(file.getName()+"OK...");
} catch (Exception e) {
//-错误的doc文件 
continue;

}

public static File createFiles(File file) {
File fileP = new File("D:\\2月10日-word转Xml"+ FileUtil.subString(file.getParent()));
// 如果文件不存在则创建
if (!fileP.exists() && !fileP.isDirectory()) {
try {
fileP.mkdirs();
} catch (Exception e) {
e.printStackTrace();
}
}
return fileP;
}

FileUtil方法

// 获取文件
public static ArrayList<File> getListFiles(Object obj) {
File directory = null;
if (obj instanceof File) {
directory = (File) obj;
} else {
directory = new File(obj.toString());
}
ArrayList<File> files = new ArrayList<File>();
if (directory.isFile()) {
files.add(directory);
return files;
} else if (directory.isDirectory()) {
File[] fileArr = directory.listFiles();
for (int i = 0; i < fileArr.length; i++) {
File fileOne = fileArr[i];
files.addAll(getListFiles(fileOne));
}
}
return files;
}

/*
* Java文件操作 获取不带扩展名的文件名
*/
public static String getFileNameNoEx(String filename) { 
       if ((filename != null) && (filename.length() > 0)) { 
           int dot = filename.lastIndexOf('.'); 
           if ((dot >-1) && (dot < (filename.length()))) { 
               return filename.substring(0, dot); 
           } 
       } 
       return filename; 
}



0 0
原创粉丝点击