java --struts2数据库导出Excel文件,下载提示
2016-10-08 00:01
627 查看
<pre name="code" class="plain">poi-3.11-20141221.jar
package cn.lanz.employe.excel.action;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.text.SimpleDateFormat;import java.util.List;import org.apache.catalina.core.ApplicationContext;import org.apache.poi.hssf.usermodel.HSSFCell;import
org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFDataFormat;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.IndexedColors;import
org.apache.struts2.ServletActionContext;import cn.lanz.employe.employee.service.EmployeeService;import cn.lanz.employe.employee.vo.Employee;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;/**
* @描述: 导出Excel文件 * @version 创建时间: 2016-10-7:上午10:53:21 * @E-mail 邮箱: lan***@126.com * @author 作者: 蓝** */public class ExportExcelAction extends ActionSupport implements ModelDriven<Employee>{private static final long serialVersionUID = 1L;/** * 加入模型驱动 */private
Employee employee=new Employee();@Overridepublic Employee getModel() {// TODO Auto-generated method stubreturn null;}/** * 注入员工service */private EmployeeService employeeService;public void setEmployeeService(EmployeeService employeeService) {this.employeeService
= employeeService;}public String exportExcel()throws Exception{//第一步,创建一个workbook,对应一个excel文件HSSFWorkbook wb=new HSSFWorkbook();HSSFSheet sheet =wb.createSheet("员工信息表");HSSFDataFormat format=wb.createDataFormat();//单元格内容格式sheet.setColumnWidth(0, 20*256);//设置单元格列宽度sheet.setColumnWidth(1,
20*256);//设置单元格列宽度sheet.setColumnWidth(2, 20*256);//设置单元格列宽度sheet.setColumnWidth(3, 20*256);//设置单元格列宽度sheet.setColumnWidth(4, 20*256);//设置单元格列宽度sheet.setColumnWidth(5, 20*256);//设置单元格列宽度Short height=300;sheet.setDefaultRowHeight(height);//统一高度 HSSFRow row=sheet.createRow(0);HSSFCellStyle
style=wb.createCellStyle();//设置样式style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中style.setFillBackgroundColor(IndexedColors.DARK_YELLOW.getIndex());HSSFCell cell;cell=row.createCell(0);cell.setCellValue("员工编号");cell.setCellStyle(style);cell=row.createCell(1);cell.setCellValue("员工姓名");cell.setCellStyle(style);cell=row.createCell(2);cell.setCellValue("员工性别");cell.setCellStyle(style);cell=row.createCell(3);cell.setCellValue("员工出生日期");cell.setCellStyle(style);cell=row.createCell(4);cell.setCellValue("员工入职日期");cell.setCellStyle(style);cell=row.createCell(5);cell.setCellValue("员工所属部门");cell.setCellStyle(style);//从数据库中读取数据
List<Employee> list=employeeService.listAll();//转换日期格式SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");//循环输出for(int i=0;i<list.size();i++){row=sheet.createRow(i+1);employee=list.get(i);row.createCell(0).setCellValue(employee.getEno());row.createCell(1).setCellValue(employee.getEname());row.createCell(2).setCellValue(employee.getSex());row.createCell(3).setCellValue(fmt.format(employee.getBirthday()));row.createCell(4).setCellValue(fmt.format(employee.getJoinDate()));row.createCell(5).setCellValue(employee.getDepartment().getDname());}
//第七步,将文件存到流中 ByteArrayOutputStream os = new ByteArrayOutputStream(); wb.write(os); byte[] fileContent = os.toByteArray(); ByteArrayInputStream is = new ByteArrayInputStream(fileContent); excelStream = is; //文件流 excelFileName = "employee.xls"; //设置下载的文件名 return
SUCCESS;} private InputStream excelStream; //输出流变量 private String excelFileName; //下载文件名 public InputStream getExcelStream() { return excelStream; } public void setExcelStream(InputStream excelStream) { this.excelStream = excelStream; } public String getExcelFileName()
{ return excelFileName; } public void setExcelFileName(String excelFileName) { this.excelFileName = excelFileName; } }
===================
struts.xml配置
<action name="excel_*" class="cn.lanz.employe.excel.action.ExportExcelAction" method="{1}"> <result name="success" type="stream"> <!-- 下载文件的类型,如果你不知道是什么格式,可以去 tomcat\conf\web.xml下找 --> <param name="contentType">application/vnd.ms-excel;charset=UTF-8</param> <!-- 返回流 excelStream为action中的流变量名称 --> <param name="inputName">excelStream</param> <!-- attachment 这个位置的参数挺特殊的,可以设置成下载时,是否出现个下载提示框,或者直接下载之类的。 fileName指定生成的文件名字(适合动态生成文件名,比如做报表时,一般都要说是几月的统计数据之类)为action中变量--> <param name="contentDisposition"> attachment;filename=${excelFileName} </param> <param name="bufferSize">1024</param> </result> </action>
相关文章推荐
- Java导出页面数据或数据库数据至Excel文件并下载,采用JXL技术,小demo(servlet实现)
- java导出Excel文件,直接可以下载,然后更新状态,刷新页面
- Java POI 3.17导出EXCEL并下载(带进度条提示)
- java实现数据库数据导出到Excel并下载查看
- Java模块 -- MyBatis 查询数据库 导出Excel文件
- java生成excel和下载导出文件的工具类
- java、Extjs导出数据库里的数据至Excel并下载至本地进行数据备份方法之二——使用Action
- 4000 struts2页面下载,从数据库把数据以excel表格形式导出
- java实现把数据库数据导出成word文件实现文件下载功能
- java导出excel 下载文件
- java、Extjs导出数据库里的数据至Excel并下载至本地进行数据备份方法之一——使用servlet
- 一个程序猿成长记:Java导出Excel文件(弹出下载框)
- Java实现数据库数据导出到Excel中并下载到浏览器本地
- web导出excel--------java导出文件弹出下载框让用户选择路径
- input file 文件上传下载 查询数据库数据并导出Excel
- struts2下载文件时出错提示:java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to java.l
- JAVA实现在数据库导出到EXCEL并下载
- datagrid数据导出到excel文件给客户端下载的几种方法
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- datagrid数据导出到excel文件给客户端下载的几种方法