首页>代码>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日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友