struts2 利用 POI 导出 excel
来源:互联网 发布:自由主义 知乎 编辑:程序博客网 时间:2024/04/23 23:19
第一种方式:在action中设置header等
1. 根据数据生成 HSSFWorkbook, 并将 HSSFWorkbook 写入到输出流
private void createExcel(List<String[]> data) throws Exception{HttpServletResponse response = ServletActionContext.getResponse();//excel 文件的 MIME 类型response.setContentType("application/vnd.ms-excel");String fileName = "导出数据";//需要使用<span style="font-family: Arial, Helvetica, sans-serif;">URLEncoder编码一下, 否则中文名字不会显示</span>response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(fileName, "utf-8") +".xls");HSSFWorkbook wb = new HSSFWorkbook();if(data == null || data.size() < 1){return;}String sheetTitle = "sheet1";HSSFSheet sheet = wb.createSheet();wb.setSheetName(0,sheetTitle);HSSFRow row=null;HSSFCell cell = null;for(int i=0; i<data.size(); i++){row = sheet.createRow(i);for(int j=0; j<data.get(i).length; j++){cell = row.createCell(j);cell.setCellValue(data.get(i)[j]);}}OutputStream os = ServletActionContext.getResponse().getOutputStream();wb.write(os);if(os != null){os.flush();os.close();}}
2. 在 action 中调用该方法即可
public String export() throws Exception{oauthInfoService.getPageInfoData(startDate, endDate, clientId, pageInfo, true);List<String[]> data = new ArrayList<String[]>();List<OauthInfoBean> result = pageInfo.getSearchResult();String[] rowName = new String[]{"请求来源","授权时间","请求时间","手机号"};data.add(rowName);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");for(OauthInfoBean bean : result){rowName = new String[4];rowName[0] = bean.getReqSource() == null?"":bean.getReqSource();if(bean.getAuthTime() != null){rowName[1] = sdf.format(bean.getAuthTime());}else{rowName[1] = "";}rowName[2] = bean.getReqTime()==null?"":bean.getReqTime();rowName[3] = bean.getPhone()==null?"":bean.getPhone();data.add(rowName);}this.createExcel(data);return NONE;}
3. struts2的配置文件中的配置方式
<action name="export" class="oauthInfoJsonAction" method="export"></action>
第二种方式,在struts2的配置文件中配置
代码
/** * * @return * @throws Exception */public String export() throws Exception{HttpServletResponse response = ServletActionContext.getResponse();//excel 文件的 MIME 类型response.setContentType("application/vnd.ms-excel");response.setHeader("Content-disposition", "attachment;filename=授权信息数据.xls");exportFileName = "导出数据";oauthInfoService.getPageInfoData(startDate, endDate, clientId, pageInfo, true);List<String[]> data = new ArrayList<String[]>();List<OauthInfoBean> result = pageInfo.getSearchResult();String[] rowName = new String[]{"请求来源","授权时间","请求时间","手机号"};data.add(rowName);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");for(OauthInfoBean bean : result){rowName = new String[4];rowName[0] = bean.getReqSource() == null?"":bean.getReqSource();if(bean.getAuthTime() != null){//rowName[1] = sdf.format(bean.getAuthTime());}else{rowName[1] = "";}rowName[2] = bean.getReqTime()==null?"":bean.getReqTime();rowName[3] = bean.getPhone()==null?"":bean.getPhone();data.add(rowName);}this.createExcel(data);return SUCCESS;}private void createExcel(List<String[]> data) throws Exception{HSSFWorkbook wb = new HSSFWorkbook();if(data == null || data.size() < 1){return;}String sheetTitle = "sheet1";HSSFSheet sheet = wb.createSheet();wb.setSheetName(0,sheetTitle);HSSFRow row=null;HSSFCell cell = null;for(int i=0; i<data.size(); i++){row = sheet.createRow(i);for(int j=0; j<data.get(i).length; j++){cell = row.createCell(j);cell.setCellValue(data.get(i)[j]);}}this.exportFileName="导出数据";//设置fileNameByteArrayOutputStream baos = new ByteArrayOutputStream();wb.write(baos);baos.flush();byte[]aa=baos.toByteArray();this.excelFileStream = new ByteArrayInputStream(aa,0,aa.length);baos.close();}
xml配置文件
<action name="export" class="oauthInfoJsonAction" method="export"><result type="stream"><param name="contentType">application/vnd.ms-excel</param> <param name="contentDisposition">attachment;filename=123.xls</param> <param name="bufferSize">1024</param> <param name="inputName">excelFileStream</param> </result></action>当然在action中必须要有excelFileStream这个属性和set,get方法
0 0
- struts2 利用 POI 导出 excel
- struts2利用poi导出excel文件
- Struts2 poi导出excel
- 利用POI导出excel
- 利用Poi导出Excel
- 利用poi导出excel
- 利用POI导出EXCEL
- 利用POI导出excel
- struts2结合poi导出excel
- struts2+poi 导出Excel文件
- 利用poi导出word excel
- javaweb 利用poi 导出excel
- POI利用模版导出excel
- 利用POI做导出EXCEL
- Java 利用poi 导出Excel
- struts2+hibernate+poi导出Excel实例
- struts2+poi实现excel文件的导出
- Struts2.18 Poi-3.7 Excel 导入导出
- Gradle入门
- 使用python3自带工具2to3.py 转换 python2.x 代码 到python3
- 第七届ccf认证第四题 自己写的错误答案
- 特别关键字
- D. Longest Subsequence
- struts2 利用 POI 导出 excel
- 多线程中线程执行器java5
- Android Facebook和Twitter分享
- 判断 Android 设备是否已 ROOT
- 关键词定位
- 求n的因子的个数和。.
- solr入门之设计自己的Java本地缓存工具类
- hdu1754 I hate it【splay树】
- 算法之约瑟夫环