1.xls 转换为 xlsx
照着网上的doc转换为docx,试验了一下;
循环传入type值,最后发现type为12的时候转换出来的是可以的xlsx;
如果有大神知道具体的,希望多多指导。
代码如下
ActiveXComponent _app = new ActiveXComponent("Excel.Application"); try{ _app.setProperty("Visible", Variant.VT_FALSE); Dispatch documents = _app.getProperty("Workbooks").toDispatch(); // 打开FreeMarker生成的Word文档 Dispatch doc=Dispatch.invoke(documents, "Open", Dispatch.Method, new Object[]{srcPath,new Variant(false),new Variant(true)}, new int[1]).toDispatch(); //另存为指定格式的文档 Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{destPath,new Variant(type)}, new int[1]); Dispatch.call(doc, "Close", Variant.VT_FALSE); //type 取值 //et :1 18 39 //xlsx:12 //dif:9 //xlt:17 }catch(Exception e){ logger.error(e); e.printStackTrace(); }finally{ _app.invoke("Quit", new Variant[] {}); ComThread.Release(); }