现在需求如下:
1.在服务端有EXCEL模板,在JSP页面上点击"编辑"按钮,即把模板下载至客户端本地并打开(过程中不要出现下载提示),完成编辑保存后,再点击JSP页面上的"保存"按钮,即把这个本地的EXCEL文件上传至服务端.
希望各位大侠帮忙啊.

解决方案 »

  1.   

    使用jspSmartUpload.jar 这下www.jspsmart.com
      

  2.   

    下载
    <%@ page contentType="text/html;charset=gb2312" <%@import="com.jspsmart.upload.*" %>               // 新建一个SmartUpload对象        SmartUpload su = new SmartUpload();               // 初始化        su.initialize(pageContext);               // 设定contentDisposition为null以禁止浏览器自动打开文件,               //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为               //doc时,浏览器将自动用word打开它。扩展名为pdf时,               //浏览器将用acrobat打开。        su.setContentDisposition(null);               // 下载文件        su.downloadFile("/upload/如何赚取我的第一桶金.doc");%>
    注意,执行下载的页面,在Java脚本范围外(即<% ... %>之外),不要包含HTML代码、空格、回车或换行等字符,有的话将不能正确下载。不信的话,可以在上述源码中%><%之间加入一个换行符,再下载一下,保证出错。因为它影响了返回给浏览器的数据流,导致解析出错。 
      

  3.   

    上传
    %@ page contentType="text/html; charset=gb2312" language="java" 
    import="java.util.*,com.jspsmart.upload.*" errorPage="" %>
    <html>
    <head>
    <title>文件上传处理页面</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head><body>
    <%
    // 新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
    // 上传初始化
    su.initialize(pageContext);
    // 设定上传限制
    // 1.限制每个上传文件的最大长度。
    // su.setMaxFileSize(10000);
    // 2.限制总上传数据的长度。
    // su.setTotalMaxFileSize(20000);
    // 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
    // su.setAllowedFilesList("doc,txt");
    // 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
    jsp,htm,html扩展名的文件和没有扩展名的文件。
    // su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
    // 上传文件
    su.upload();
    // 将上传文件全部保存到指定目录
    int count = su.save("/upload");
    out.println(count+"个文件上传成功!<br/>");// 利用Request对象获取参数之值
    out.println("TEST="+su.getRequest().getParameter("TEST")
    +"<BR><BR>");// 逐一提取上传文件信息,同时可保存文件。
    for (int i=0;i<su.getFiles().getCount();i++)
    {
    com.jspsmart.upload.File file = su.getFiles().getFile(i);// 若文件不存在则继续
    if (file.isMissing()) continue;// 显示当前文件信息
    out.println("<TABLE BORDER=1>");
    out.println("<TR><TD>表单项名(FieldName)</TD><TD>"
    + file.getFieldName() + "</TD></TR>");
    out.println("<TR><TD>文件长度(Size)</TD><TD>" + 
    file.getSize() + "</TD></TR>");
    out.println("<TR><TD>文件名(FileName)</TD><TD>" 
    + file.getFileName() + "</TD></TR>");
    out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>" 
    + file.getFileExt() + "</TD></TR>");
    out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"
    + file.getFilePathName() + "</TD></TR>");
    out.println("</TABLE><BR>");
    su.SAVE_PHYSICAL);}
    %>
    </body>
    </html>
    我以前看到某高人写的 转载
      

  4.   

    老大,刚刚试了一下下载的部份,上传的还没试,有了一点问题哦.
    <%@ page contentType="text/html;charset=gb2312" import="com.jspsmart.upload.*" %>
    <%       SmartUpload su = new SmartUpload();
            su.initialize(pageContext);
            su.setContentDisposition(null);
            su.downloadFile("/report/Model/BudGetMode.xls");
    %>
    问题:
    1.这是我下载页面的代码,还是会出现下载提示的,是要打开,还是保存的提示框;
    2.su.downloadFile("/report/Model/BudGetMode.xls")这一句只是指出了源文件的位置,怎么样指定下载的目标路径啊?
      

  5.   

    对了,我还试了一下,把su.setContentDisposition(null);这句话去掉了,结果提示我是打开还是保存的时候,我选择打开的话,就在页面里直接打开文件了;其实这个效果也可以哈.只是我修改了嵌在页面中的文件之后,怎么样才能保存到服务器上呢?
      

  6.   

    下载东西不提示这个是不可能的
    人家到你的网站上浏览了一下,就给人家放一个文件,太不安全了阿,要是你给个木马呢。
    上传嘛,你是希望修改完了,自动上传对吧,也不可能。你不能让excel往你的网站发送一个上传得请求吧 。总的来说你需要考虑别的解决方案。
      

  7.   

    easyroom(风)
    您的说话我现在想想也确实是这样了,您见我的另一个贴子,看看这个需求有希望解决吗?
    http://community.csdn.net/Expert/topic/5608/5608977.xml?temp=.1963922
      

  8.   

    hjjq(可心):
    请部有详细一点的代码或是解决方案吗?
      

  9.   

    很难,传统做法有以下几种
    1,证书,作信任,继承微软office(很贵,专有技术)
    2。作ocx,安装,直接在IE页面上编辑保存即可
    3。ftp上传编辑,需要c++技术作组件,和第二种类似
    4。用js模仿exl,可以参考weboffice组件。
      

  10.   

    请教shan__le:
    有具体的代码可供参考吗?
    最简单有效的就可以.安全性之类的要求不是很高.只要功能可以实现就OK了.
      

  11.   

    做个仿EXCEL风格的页面最好、最简单
    要是用户需要保存到本地、或者打印,在用js或者别的方法实现如果你的EXCEL是直接以文件的形式,保存在服务器的话,那直接
    file://server/d$/ftp2/file/eee.xls,就OK了
    只要在服务器上,给这个文件夹、文件授权就行了。如果文件是保存在数据库里面的,真的实现,下载、编辑、上传,那困难就多了
    就要考虑 shan__le 的问题
      

  12.   

    Stone_G(康康):
    其实我最终要做的,就是编辑服务器上的EXCEL文件,因为不能直接在服务器上编辑保存,所以才想到先下载到本地再编辑,然后再上传回去的.
    如果可以直接在页面上编辑保存的话,一切就OK了.有什么好的办法吗?
      

  13.   

    xizhiyao(流浪的猴子):
    问题到现在还没搞定呢啊.结贴了谁还来帮忙呀?
    您昨天跟我说了两句就没影了,找你也找不到哦.看到我前面给您留的话了没?
    下载的时候还是弹出对话框哈.
      

  14.   

    下载:
    用excel里的交互页面功能,做一个摸板
    点击下载链接,打开一个摸板,从数据库里读取文件,填充到摸板
    之后就可以随便编辑
    上传:
    可以在页面上加一个保存按钮,单击上传
      

  15.   

    lihui_shine() :
    请教一下,有详细的代码么?我有点没头绪哈
      

  16.   

    to jingruifeng(小井):
    你打开一个excel文件(new一个也行),"文件"菜单===>"保存到网页"
    记住选定"交互页面"
    你自己看看里面有些什么东西(一些代码可以自己看看),不难的
      

  17.   

    to jingruifeng(小井):
    然后就是按照固定的格式,拼一个页面出来(类似Table格式)
      

  18.   

    不过这样的话,excel的功能有局限
    如果不用这种方法的话,你要请教shan__le了
      

  19.   

    想到一个简单的方法,技术含量可以忽略不计
    做一个仿EXCEL风格的页面,用户保存之后,重写服务器上的excel,哈哈
    读写excel的方法,可以用jxl或者poi(我没用过这个),网上资料很多难度不高、时间不长、又不废脑我估计excel模版的话有点缺点,但是不知道lihui_shine()是甚么思路,我觉得要是你的系统里面的excel样式很多,那就要做很多模版,而且到时候点哪个excel调用哪个模版,还需要配置
      

  20.   

    to Stone_G(康康):
    对的,还要考虑版本问题,各种OFFICE版本有不同的classid
    高手,呵呵
      

  21.   

    to Stone_G(康康):
    (想到一个简单的方法,技术含量可以忽略不计
    做一个仿EXCEL风格的页面,用户保存之后,重写服务器上的excel,哈哈
    读写excel的方法,可以用jxl或者poi(我没用过这个),网上资料很多......)如此看来的话,这是最好的方法了,也实用
      

  22.   

    lihui_shine() :
    我刚才试了一下您说的方法,觉得有一定的可行性,其实就是另存为一个HTM文件了.以这个HTM文件做为模板.我也可以在我的页面里打开这个模板了,只是现在不知道编辑后如何来保存这个页面呢?
      

  23.   

    我再研究一下Stone_G(康康)的方法看看
      

  24.   

    lihui_shine() 
    哈哈
    因为我比较懒,技术也很烂,所以都是选择比较简单的方法
    classid是甚么意思我还是刚刚看了你的回复,查了一下才知道。这个问题我也想不出甚么好方法了,shan__le也提到用js做一个仿excel
    但不知道weboffice组件是甚么样子,是不是类似很多论坛里面,可以在恢复里面设置表格、字体的那种?这样的话,FCKeditor很有名,但读写EXCEL还是一定的。
    楼主这个问题,我觉得可以不用这个东西
      

  25.   

    我还想到一个办法,就是利用中间件,楼主不妨去了解下iWebOffice2006
    去网上看看它的具体用法,它的功能蛮强大的,应该可以满足你的要求
      

  26.   

    哎,惭愧,中间件发放shan__le已经提过了
    不过真的不错,效果蛮好的
    去下载个iWebOffice2006.ocx就行了
      

  27.   

    各位达人说的那个iWebOffice中间件好像是要收费的哦.我现在需要靠免费的实现哈.
    现在使用lihui_shine()前面说的方法,已经可以实现一些功能了,现在就差在交互的HTM页面上编辑之后,如何保存这个HTM页面了啊.
      

  28.   

    to jingruifeng(小井) :http://www.onlinedown.net/soft/41938.htm好象有下载,有iwebOffice2006.ocx
    文档也很全至于key的话,试试里面的classid吧
      

  29.   

    jspSmartUpload.jar  能将上传的同名文件覆盖吗?如果能,何不用jspSmartUpload.jar 将文件下载下来编辑后再传上去.
      

  30.   

    tigerwithwing() :
    我开始就是这么考虑的,但是这个方法终究无法避免弹出文件保存对话框这样的过程...
      

  31.   

    有人知道JBOSS下WebDav的配置方法吗?
      

  32.   

    如果想不出现保存就只能使用插件了,能在线编辑WORD和EXCEL的插件~
      

  33.   

    iwebOffice2006
    这个应该能帮你解决,我没有用过,听说过,呵呵~`