CONAN ZONE

          你越掙扎我就越興奮

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            0 Posts :: 282 Stories :: 0 Comments :: 0 Trackbacks

          在利用網頁展示查詢結果,經常會遇到要求導出成Excel的需求。采用這種方法可以定制輸出的格式和內容(還不支持合并單元格和公式),生成真正的Excel格式(不是csv)的Excel。
          一、struts.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE struts PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
              "http://struts.apache.org/dtds/struts-2.0.dtd">
            
          <struts>

              <constant name="struts.i18n.encoding" value="UTF-8"/>

              <package name="demo" extends="struts-default">
                  <action name="excel" method="execute" class="demo.ExcelAction">
                          <result name="excel" type="stream">
                              <param name="contentType">application/vnd.ms-excel</param>    <!-- 注意這里的ContentType -->
                              <param name="inputName">excelStream</param>                   <!-- 這里需要和Action里的變量名一致 -->
                              <param name="contentDisposition">filename="standard.xls"</param>
                              <param name="bufferSize">1024</param>
                          </result>
                  </action>
              </package>
          </struts>

          二、Struts2的 Action

          package demo;
          public class ExcelAction {
              private InputStream excelStream; // 需要生成getter和setter

              public String execute() throws Exception {
                  StringBuffer excelBuf = new StringBuffer();
                  excelBuf.append("BookName").append("\t").append("Year").append("\t").append("author").append("\n");
                  excelBuf.append("Thinking in Java").append("\t").append("2001").append("\t").append("Eckel").append("\n");
                  excelBuf.append("Spring in action").append("\t").append("2005").append("\t").append("Rod").append("\n");
                  String excelString = excelBuf.toString();
                  logger.debug("result excel String: " + excelString);
                  excelStream = new ByteArrayInputStream(excelString.getBytes(), 0, excelString.length());
                  return "excel";
              }

              // getter and setter
              ...
          }

          三、Jsp頁面

          <%@ taglib prefix="s" uri="/struts-tags"%>
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
           <head>
            <s:head />
           </head>

           <body>

              <s:form action="" method="post">
                 <s:submit key="button.submit"/>
              </s:form>
           </body>
          </html>

          posted on 2008-06-24 19:41 CONAN 閱讀(223) 評論(0)  編輯  收藏 所屬分類: Struts2/Webwork
          主站蜘蛛池模板: 滁州市| 阜城县| 交城县| 北京市| 鹤峰县| 彰武县| 西和县| 安乡县| 保定市| 利津县| 太白县| 南安市| 鄂州市| 花莲市| 河北区| 鄂伦春自治旗| 梁平县| 米易县| 桂平市| 罗平县| 弥勒县| 揭阳市| 柘荣县| 本溪市| 隆林| 浦北县| 芦溪县| 沁水县| 江门市| 铜陵市| 吉木萨尔县| 洛隆县| 象山县| 江川县| 扎赉特旗| 陈巴尔虎旗| 澄迈县| 玛曲县| 佳木斯市| 中方县| 内江市|