Sugo

Goof off ? no way: never
posts - 20, comments - 8, trackbacks - 73, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

       关于word文档操作, 网上不少这样的例子,好像都是一篇文章。word文档嵌入到网页中好像比较简单一些。加个报文头基本上就可以实现此功能。而导出数据到word文档中,我可费了不少的脑细胞。闲话少说,步入正题。。。:)
      网页中嵌入word文档,在jsp程序开头部分加入<%@ page contentType="application/msword;charset=GBK"%>这些代码,即可实现。比较简单,相信很多人都知道这一点了。
      费脑筋的是将一张报表或者一张登记表导入到word文档中。报表(登记表)都是动态生成的。那么首先的问题是如何获得一个动态网页中的内容。我以前使用的BufferedReader,PrintWriter,BufferedInputStream,BufferedOutputSteam都不起作用了,原因就是他们不能读取动态生成的网页内容。因此,我想到了URL这个类,获得内容的代码如下:
       java.net.URL l_url = new java.net.URL("http://localhost:9000/rlzy/employee/employee_resume.jsp?id="+emp_id);

       java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();

       l_connection.connect();

       l_urlStream = l_connection.getInputStream();

       java.io.BufferedReader l_reader = new java.io.BufferedReader(new java.io.InputStreamReader(l_urlStream));

       while ((sCurrentLine = l_reader.readLine()) != null)

        {

          content+=sCurrentLine;

         } 
       content即为我们想要得到的动态内容。
       导出数据的话,使用BufferedInputStream 和 BufferedOutputStream 。但前提是把得到的动态内容先输出到一个临时的html网页中,即把它先变成一个静态文件。这样BufferedInputStream 和BufferedOutputStream 就可以获得要读取和输出的内容。读取完毕,再把这个临时的html网页删除。这是网上流传的代码:
       BufferedInputStream bis = null;
       BufferedOutputStream bos = null;
       try {
              bis = new BufferedInputStream(new FileInputStream(内容资源的路径));
              bos = new BufferedOutputStream(response.getOutputStream());

              byte[] buff = new byte[2048];
              int bytesRead;

              while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
              bos.write(buff,0,bytesRead);
            }

          } catch(final IOException e) {
        System.out.println ( "出现IOException." + e );
          } finally {
          if (bis != null)
            bis.close();
          if (bos != null)
            bos.close();
       }
       此外,导出内容到word文档后,还可能会出现格式不正确的问题。我就遇到了html表格导出到word就发生变化的情况。这种情况具体原因应该是两种不同文件编码的问题。我是通过修改源html文件解决的问题。至于以后如果还碰到类似问题的话,首先看一下word文档和html文档是从哪个地方格式开始变化了,找到之后再对症下药。如果你觉得这种解决方法没什么技术含量的话,你可以根据内容手动输出。。。哈
                                                    。。。。。。。。。。。学到了一些东西。。。。。。。。。。。。


只有注册用户登录后才能发表评论。


网站导航: