第一篇技术文章,多多支持

现在开始

html代码:

 
  
  1. <form action="userAction!exportExcel"> 
  2. <input type="submit">导出</input> 
  3. </form> 

struts.xml配置:

 
  
  1. <package name="" namespace="/" extends="json-default"> 
  2.         <action name="userAction" class="com.truth99.action.UserAction"> 
  3.             <result name="excel" type="stream"> 
  4.                 <param name="encode">true</param> 
  5.                 <param name="contentType">application/vnd.ms-excel;charset=GBK</param> 
  6.                 <param name="inputName">excelStream</param> 
  7.                 <param name="contentDisposition">p_w_upload;filename=${fileName}</param> 
  8.                 <param name="bufferSize">20480</param> 
  9.             </result> 
  10.         </action> 
  11.     </package> 

<param name="encode">true</param> 允许编码

<param name="contentType">application/vnd.ms-excel;charset=GBK</param> 内容类型:就是excel,后面的charset是编码格式

<param name="inputName">excelStream</param> 输入流的名字定义,随便定义

<param name="contentDisposition">p_w_upload;filename=${fileName}</param>输出时的文件名

java代码:

 
  
  1. package com.truth99.action; 
  2.  
  3. import java.io.ByteArrayInputStream; 
  4. import java.io.InputStream; 
  5.  
  6. public class UserAction{ 
  7.  
  8. private InputStream excelStream; 
  9. private String fileName = "golf.xls";//导出excel 
  10.  
  11. public String exportExcel(){ 
  12.         try
  13.             StringBuffer sb = new StringBuffer(); 
  14.             sb.append("title1").append("\t").append("title2").append("\n");
  15. //\t表示下一列,\n表示下一行 
  16. //导入的数据进行迭代,拼成字符串
  17.             for(;;){ 
  18.                 sb.append("content1").append("\t").append("content2").append("\n"); 
  19.             } 
  20. //将字符串放入流中
  21.             excelStream = new ByteArrayInputStream(sb.toString().getBytes("GBK"), 0, sb.toString().getBytes("GBK").length); 
  22.         }catch(Exception e){ 
  23.         } 
  24.         return "excel"
  25.     } 
  26.     public InputStream getExcelStream() { 
  27.         return excelStream; 
  28.     } 
  29.     public void setExcelStream(InputStream excelStream) { 
  30.         this.excelStream = excelStream; 
  31.     } 
  32.     public String getFileName() { 
  33.         return fileName; 
  34.     } 
  35.     public void setFileName(String fileName) { 
  36.         this.fileName = fileName; 
  37.     } 

这样就完事儿了,挺简单的。