首页>代码>java通过jacob插件将word,excel转换成html网页源代码下载>/word exls转换成htm及更改文档编码/Jacob/src/cn/com/lqw/Jacob.java
package cn.com.lqw; import com.jacob.com.*; import com.jacob.activeX.*; import java.io.*; public class Jacob { private static final String Wordfiletype="Word.Application"; private static final String Excelfiletype="Excel.Application"; private static final int ExcelfileId=44; private static final int WordfileId=10; private static final String TEPS_Word="Documents"; private static final String TEPS_Excel="Workbooks"; //将指定目录下面的指定doc文件转化为HTML并存储在savepaths目录下 // public static void change(String filepaths,HttpServletRequest request) throws IOException { // String panString=filepaths.substring(filepaths.indexOf("."),filepaths.length()); // System.out.println(panString); // File f = new File("C:\\uploadfile\\"+filepaths); // String filename = f.getName(); // String filetype = filename.substring((filename.length() - 3), filename.length());// 取得文件类型 // System.out.println("当前正在转换......"); // // 打印当前目录路径 // System.out.println(filepaths); // ActiveXComponent app = new ActiveXComponent("Word.Application");// 启动word // String docpath = f.getPath(); // String htmlpath ="C:\\uploadfile\\"+ filename.substring(0,filename.indexOf('.')); // System.out.println(htmlpath); // String inFile = docpath; // // 要转换的word文件 // String tpFile = htmlpath; // // HTML文件 // boolean flag = false; // try { // app.setProperty("Visible", new Variant(false));// 设置word不可见 // Object docs = app.getProperty("Documents").toDispatch(); // Object doc = Dispatch.invoke((Dispatch) docs,"Open",Dispatch.Method,new Object[] { inFile, new Variant(false),new Variant(true) }, // new int[1]).toDispatch();// 打开word文件 // /* // * new Variant(10)筛选过的网页 // * new Variant(9) 单个文件网页 // * new Variant(8) 另存为网页 // * new Variant(7) 另存为txt格式 // * new Variant(6) 另存为rtf格式 // * new Variant(0) 另存为doc格式 // */ // Dispatch.invoke((Dispatch) doc, "SaveAs", Dispatch.Method, new Object[] {tpFile, new Variant(10) }, new int[1]);// 作为html格式保存到临时文件 // Variant fl = new Variant(false); // Dispatch.call((Dispatch) doc, "Close", fl); // flag = true; // } catch (Exception e) { // e.printStackTrace(); // } finally { // app.invoke("Quit", new Variant[] {}); // } // System.out.println("转化完毕!"); // Desktop desktop = Desktop.getDesktop(); // File file = new File(htmlpath+".htm"); // desktop.open(file); // request.setAttribute("pathString",htmlpath+".htm"); // } //把文档转换成htm public static void DocumentToHtml(String fileName,String filetype,String teps,int typeid) throws IOException { File fl = new File("e:\\uploadfile\\"+fileName); String docpath = fl.getPath(); String filename = fl.getName(); String htmlpath ="e:\\uploadfile\\"+ filename.substring(0,filename.indexOf('.')); ActiveXComponent app = new ActiveXComponent(filetype); // 启动excel try { app.setProperty("Visible", new Variant(false)); Dispatch excels = app.getProperty(teps).toDispatch(); Dispatch excel = Dispatch.invoke(excels,"Open",Dispatch.Method,new Object[] { docpath, new Variant(false),new Variant(true) }, new int[1]).toDispatch(); Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] {htmlpath, new Variant(typeid) }, new int[1]); Variant f = new Variant(false); Dispatch.call(excel, "Close", f); } catch (Exception e) { e.printStackTrace(); } finally { app.invoke("Quit", new Variant[] {}); } changeFileCharset(htmlpath+".htm","gb2312"); } public static void changeFileCharset(String filePath, String codeType) { File file = new File(filePath); try { int index = file.getAbsolutePath().lastIndexOf('\\') + 1; String fileName = file.getName(); String str= filePath.substring(0,filePath.indexOf('.')); File file1 = new File(str+".html"); BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(file))); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(file1))); String line = null; while ((line = br.readLine()) != null) { if (line.lastIndexOf("charset=") > 0){ String oldCodeType = line.substring(line.lastIndexOf("charset=") + 8, line.length()-2); if (oldCodeType != null && !oldCodeType.equals(codeType)){ line = line.substring(0, line.lastIndexOf("charset=")) + "charset=" + codeType + "\">"; } } bw.write(line + "\n"); } bw.flush(); bw.close(); br.close(); file.delete(); file1.renameTo(new File(filePath)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void getHtmlString(String filename) throws IOException{ String filetype = filename.substring((filename.length() - 3), filename.length());// 取得文件类型 if(filetype.equals("xls")){ DocumentToHtml(filename, Excelfiletype,TEPS_Excel,ExcelfileId); }else{ DocumentToHtml(filename, Wordfiletype,TEPS_Word,WordfileId); } } }
最近下载更多
breakCY LV15
2023年6月2日
moomin709 LV24
2022年8月8日
whfuai LV14
2022年7月5日
fei6549 LV10
2021年6月3日
wyx123456 LV19
2021年5月10日
dyihui LV12
2020年11月19日
15817213218 LV12
2020年11月7日
zhangguobin LV14
2020年10月30日
王天麟 LV12
2020年6月17日
shiopaaa LV13
2020年6月11日
最近浏览更多
3334004690 LV10
6月24日
breakCY LV15
2023年6月2日
微信网友_6467077197238272 LV1
2023年5月8日
moomin709 LV24
2022年8月8日
whfuai LV14
2022年5月13日
tansuo阿郎 LV8
2021年11月29日
文武
2021年6月15日
暂无贡献等级
zxhjy5 LV6
2021年6月4日
fei6549 LV10
2021年6月3日
13043860zj LV16
2021年5月24日