jsp中 在线打开WORD 修改WORD内容
一种简单的方法是用<iframe name="resource" src="" width="100%" scrolling="auto" frameborder="0"></iframe>,src为word路径,用js设置,这种方法的话,不知道FF支持的如何
还有可以设置response.reset();
response.setContentType("application/x-msword");
response.addHeader("Content-isposition","attachment;filename=" + "C:\\x.doc");
路径也在里面,相对来说要做点工作了
至于保存到服务器可以用smart做上传功能了
我暂时还没想到什么方法可以不重新上传就搞定的。
求助,怎么在JSP中实现在线打开WORD文件,请帮帮忙,谢谢你了-
或者response.reset(); response.setContentType("application/x-msword"); response.addHeader("Content-isposition","attachment;filename=" + "C:\\x.doc");。
jsp里面怎么显示word文档
JAVA代码:[java] view plaincopyimport java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; public class TransformFiletoHtml { int WORD_HTML = 8; int WORD_TXT = 7; int EXCEL_HTML = 44; /** * WORD转HTML * @param docfile WORD文件全路径 * @param htmlfile 转换后HTML存放路径 */ public void wordToHtml(String docfile, String htmlfile) { ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word try { app.setProperty("Visible", new Variant(false)); Dispatch docs = app.getProperty("Documents").toDispatch(); Dispatch doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] { docfile, new Variant(false),new Variant(true) }, new int[1]).toDispatch(); Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {htmlfile, new Variant(WORD_HTML) }, new int[1]); Variant f = new Variant(false); Dispatch.call(doc, "Close", f); } catch (Exception e) { e.printStackTrace(); } finally { app.invoke("Quit", new Variant[] {}); } } /** * EXCEL转HTML * @param xlsfile EXCEL文件全路径 * @param htmlfile 转换后HTML存放路径 */ public void excelToHtml(String xlsfile, String htmlfile) { ActiveXComponent app = new ActiveXComponent("Excel.Application"); // 启动excel try { app.setProperty("Visible", new Variant(false)); Dispatch excels = app.getProperty("Workbooks").toDispatch(); Dispatch excel = Dispatch.invoke(excels,"Open",Dispatch.Method,new Object[] { xlsfile, new Variant(false),new Variant(true) }, new int[1]).toDispatch(); Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] {htmlfile, new Variant(EXCEL_HTML) }, new int[1]); Variant f = new Variant(false); Dispatch.call(excel, "Close", f); } catch (Exception e) { e.printStackTrace(); } finally { app.invoke("Quit", new Variant[] {}); } } /** * /删除指定文件夹 * @param folderPath 文件夹全路径 * @param htmlfile 转换后HTML存放路径 */ public void delFolder(String folderPath) { try { delAllFile(folderPath); //删除完里面所有内容 String filePath = folderPath; filePath = filePath.toString(); java.io.File myFilePath = new java.io.File(filePath); myFilePath.delete(); //删除空文件夹 } catch (Exception e) {e.printStackTrace();} } /** * /删除指定文件夹下所有文件 * @param path 文件全路径 */ public boolean delAllFile(String path) { boolean flag = false; File file = new File(path); if (!file.exists()) { return flag; } if (!file.isDirectory()) { return flag; } String[] tempList = file.list(); File temp = null; for (int i = 0; i < templist.length;="" i++)="" {="" if="" (path.endswith(file.separator))="" {="" temp="new" file(path="" +="" templist[i]);="" }="" else="" {="" temp="new" file(path="" +="" file.separator="" +="" templist[i]);="" }="" if="" (temp.isfile())="" {="" temp.delete();="" }="" if="" (temp.isdirectory())="" {="" delallfile(path="" +="" "/"="" +="" templist[i]);//先删除文件夹里面的文件="" delfolder(path="" +="" "/"="" +="" templist[i]);//再删除空文件夹="" flag="true;" }="" }="" return="" flag;="" }="" }="" 调用java代码:[java]="" view="" plaincopypublic="" class="" test1="" {="" public="" static="" void="" main(string[]="" args)="" {="" todo="" auto-generated="" method="" stub="" transformfiletohtml="" trans="new" transformfiletohtml();="" trans.wordtohtml("d:\\sinye.doc",="" "d:\\sinye.html");="" }="">
怎样设置jsp生成word文档以页面视图来显示
1-apache的POI,此方法对Excel的导出做的很好,目前对Word的导出方面的功能尚未完全。
2-纯JavaScript脚本实现。主要通过客户端调用本机Office组件来实现。
3-在JSP页面引入头文件实现。纯JavaScript脚本实现细节方面大体是创建一个word组件ActiveXObject('Word.Application'),用js通过表ID取得表内容然后保存到word,要注意的是js实现有很多不好的地方,例如Internet选项需要把ActiveX空间全部启用,安全级别设置为中。
这样的话岂不是每台机器都要配置一下。其次每次生成word文档以后弹出对话框(无法保存此文件,因为它已在别处打开(C:\。
\STARTUP\Powerword.dot)),出现此问题就需要把C:\Documents and Settings\当前用户名\Application Data\Microsoft\Word\STARTUP下的Powerword.dot文件删除,每次遇到此问题就需要删除文件来解决,十分不方便。JSP页面引入来实现Word保存就方便多了,但是也有不足的地方,首先如果需要引入
在Action里直接写如下代码:if(out!=null){String fileName=;fileName+=评价报告.doc;try {HttpServletResponse response = ServletActionContext.getResponse();response.setHeader(Content-disposition,attachment; filename=+new String(fileName.getBytes(GB2312), 8859_1));} catch (UnsupportedEncodingException e) {e.printStackTrace();}out是jsp页面表单元素,一个button,用于提交表单到相应Action进行Word下载。Action设置jsp页面头文件。
这样每次点击button就可以把相应jsp页面的内容保存到Word中并且支持下载,Word中内容并且是可编辑状态。不足的地方在于由于表内容是动态生成,有的需要先查看在下载Word,就需要另外建立一个新JSP页面进行Word下载,当然首先要在struts.xml里配置好页面转向。
新建立的页面传值同查看页面要保持一样。
如何在jsp页面显示一个已有的word文档
"% String filename = ""<%@page contentType=".*"%>.close(); if(!--"), 0, buff.length))) { bos;"%@page import=".read(buff; } } catch(FileNotFoundException fe){ System.out.println("文件没找到"!= null) bis.close(); if (bos ;) != null) { filename = request.getParameter("文件未找到\ BufferedOutputStream bos = null;); byte[] buff = new byte[2048]; int bytesRead; while(-1 != (bytesRead = bis;/mce:script>"); out;msword;charset=utf-8"%> return; try { bis = new BufferedInputStream(new FileInputStream(filename)); bos = new BufferedOutputStream(response.getOutputStream()); out.println("window.doc"); BufferedInputStream bis = null;attachment; filename=mc!f;<.setHeader("),"application/ if (request.setContentType("application/msword"); response.getParameter("docfilename"");" } response;
1-apache的POI,此方法对Excel的导出做的很好,目前对Word的导出方面的功能尚未完全。 2-纯JavaScript脚本实现。主要通过客户端调用本机Office组件来实现。 3-在JSP页面引入头文件实现。 纯JavaScript脚本实现细节方面大体是创建一个word组件ActiveXObject('Word.Application'),用js通过表ID取得表内容然后保存到word,要注意的是js实现有很多不好的地方,例如Internet选项需要把ActiveX空间全部启用,安全级别设置为中。这样的话岂不是每台机器都要配置一下。其次每次生成word文档以后弹出对话框(无法保存此文件,因为它已在别处打开(C:\。\STARTUP\Powerword.dot)),出现此问题就需要把C:\Documents and Settings\当前用户名\Application Data\Microsoft\Word\STARTUP下的Powerword.dot文件删除,每次遇到此问题就需要删除文件来解决,十分不方便。 JSP页面引入来实现Word保存就方便多了,但是也有不足的地方,首先如果需要引入 如果需要下载的话就引入 其实如果大家用框架做就方便多了,比如Struts2。在Action里直接写如下代码: if(out!=null){ String fileName=""; fileName+="评价报告.doc"; try { HttpServletResponse response = ServletActionContext.getResponse(); response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("GB2312"), "8859_1")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } out是jsp页面表单元素,一个button,用于提交表单到相应Action进行Word下载。Action设置jsp页面头文件。这样每次点击button就可以把相应jsp页面的内容保存到Word中并且支持下载,Word中内容并且是可编辑状态。 不足的地方在于由于表内容是动态生成,有的需要先查看在下载Word,就需要另外建立一个新JSP页面进行Word下载,当然首先要在struts.xml里配置好页面转向。 新建立的页面传值同查看页面要保持一样。 有个项目,用jsp做,要将多个WORD文档链接起来,并且做成好像在