excel 表格下载功能

struts.xml配置

<!-- 下载 -->
  <action name="download" class="nam.menu.downloadAC">
   <result name="input" type="stream">
   <param name="contentType">application/vnd.ms-excel</param><!-- 指明文件的类型 -->
   <param name="inputName">fis</param><!-- 指明文件下载的方法的名字 -->
   <!--attachment属性是要选择打开时单独打开,而不是在浏览器中打开,默认是inline. 指明下载时文件的名字 -->
   <param name="contentDisposition">attachment;filename="${exportFileName}.xls"</param>
   <param name="bufferSize">4096</param>
   </result>
  </action>

java Action 层代码

 

import java.io.InputStream;
import java.io.UnsupportedEncodingException;


public class DownloadAC extends BaseMenuDataAC{
                     private  String  ids;
	   
	   private InputStream fis = null;

	   private String exportFileName = null;
	     	  
	   public String getIds() {
			return ids;
		}

                     public void setIds(String ids) {
			this.ids = ids;
		}

	public InputStream getFis() {
		return fis;
	}


	public void setFis(InputStream fis) {
		this.fis = fis;
	}


	public String getExportFileName() {
		return exportFileName;
	}


	public void setExportFileName(String exportFileName) {
		this.exportFileName = exportFileName;
	}
   
	
	public String execute() {


			String name = "表名称";
			try {

				setExportFileName(new String(name.getBytes("GB2312"), "ISO8859-1"));
			} catch (UnsupportedEncodingException e) {
				// TODO: handle exception
				e.printStackTrace();
			}

			fis = dowloadBS.exportcostinfolist(ids);
			return INPUT;
		}	   			    	  

}
  

BS层

 

public InputStream exportcostinfolist(String ids) {
		// 创建excel导出对象
		POIExcelObjectAdvance excel = new POIExcelObjectAdvance();
		POIExcelSheet sheet1 = excel.createSheet("表");
		// 初始化导出区域列表
		List<POIExcelContent> areaList = new ArrayList<POIExcelContent>();
		// 设置字体
		HSSFFont font = excel.createDefaultFont();
		font.setFontName("宋体");
		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
		font.setFontHeightInPoints((short) 10);
		
		HSSFFont font1=excel.createDefaultFont();
		font1.setFontName("黑体");
		font1.setFontHeightInPoints((short) 13);
		
		int[] cols = { 10, 10, 20, 30};
		sheet1.setColumnWidth(cols);
		// 初始化导出区域1的内容列表
		List<String[]> title1List = new ArrayList<String[]>();
		// 在导出区域1内容列表增加导出内容
		String[] titles = { "序号", "mingchengf", "nianling","jiankang};
		title1List.add(titles);
		POIExcelContent title1 = new POIExcelContent(0, 0, title1List, font1);
		areaList.add(title1);
		List<Date> data = downloadDataDAO.queryExportMenuDataList(ids);
		List<String[]> title2List = new ArrayList<String[]>();
		for (int i = 0; i < data.size(); i++) {
			String[] content = new String[titles.length];
			content[0] = String.valueOf(i + 1);
			content[1] = data.get(i).getName();
			content[2] = data.get(i).getAge();
			content[3] = data.get(i).getJakang();
			title2List.add(content);
		}

		POIExcelContent title2 = new POIExcelContent(0, 1, title2List, font);
		areaList.add(title2);
		sheet1.setContentList(areaList);
		return excel.toInputStream();
	}

 

posted @ 2015-06-11 18:01  猪肉炖粉条  阅读(243)  评论(0编辑  收藏  举报