做个超链接就可以只要客户机上有EXCEL

解决方案 »

  1.   

    可以直接从页面上导出到本地的EXCEL表里,
      

  2.   

    我的问题是说要把本地的excel文件显示到页面中去
      

  3.   

    只要客户端有安装Excel,应该就可以在直接有IE中打开Excel文件的。
      

  4.   

    通过servlet将文件输出流发送到客户端,同时指定encoding就不会乱码了。比如
    serlvet请求的时候调用下面这个方法
    private void responseDownloadRequest(HttpServletResponse response, File file) {
            java.io.BufferedInputStream fin = null;
            int  nBytes;
            try {
                response.setHeader("pragma", "no-cache");
                if (!file.exists()) respondLine(response, "The file does not exist.");
                else if (!file.canRead()) respondLine(response, "The file isn't readable.");
                else {
                    fin = new java.io.BufferedInputStream(new FileInputStream(file));
                    response.setContentType("application/Excel" + "; charset=ISO-8895-1");
                    nBytes = fin.available();
                    response.setContentLength(nBytes);
                    String strInlineFileName = file.getName();
                    strInlineFileName = new String(strInlineFileName.getBytes(), "ISO-8859-1");
                    response.setHeader("Content-Disposition", "inline; filename=" + strInlineFileName);
                    byte bt[] = new byte[10*1024];
                    while((nBytes = fin.read(bt)) != -1){
                        response.getOutputStream().write(bt, 0, nBytes);
                    }
                }
            }
            catch(Exception e) {
                e.printStackTrace();
            }
            try {
                if (fin != null) fin.close();
                fin = null;
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }private void respondLine(HttpServletResponse resp, String strMessage) {
            try {
                resp.setContentType("text/plain");
                BufferedOutputStream out = new BufferedOutputStream(resp.getOutputStream());
                out.write(strMessage.getBytes());
                out.write(new byte[]{0x0D, 0x0A});
                out.flush();
                out.close();
            }
            catch (java.io.IOException e) {
                e.printStackTrace();
            }
        }