JAVA实现创建Excel表并导出

使用Maven仓库管理,在pom文件添加如下文件

<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi</artifactId>
   <version>3.17</version>
</dependency>

或者下载jar,下载地址http://download.csdn.net/download/webcows/10185330

poi实现导出的具体步骤如下:

1创建实体类 Member.java

import java.util.Date;  
public class Members{  
   private String name;  
      
   private Integer code;  
     
   private Integer age;  
     
   private Date birthday;  
  
    public Student(Integer code, String name, Integer age, Date birthday) {  
    super();  
    this.code = code;  
    this.name = name;  
    this.age = age;  
    this.birthday = birthday;  
}  
  
    public Integer getCode() {  
        return code;  
    }  
      
    public void setCode(Integer code) {  
        this.code = code;  
    }  
      
    public String getName() {  
        return name;  
    }  
      
    public void setName(String name) {  
        this.name = name;  
    }  
      
    public Integer getAge() {  
        return age;  
    }  
      
    public void setAge(Integer age) {  
        this.age = age;  
    }  
      
    public Date getBirthday() {  
        return birthday;  
    }  
      
    public void setBirthday(Date birthday) {  
        this.birthday = birthday;  
    }  
}  
2, CreateSimpleExcel.java (导出到excel

import java.io.FileOutputStream;  
import java.text.SimpleDateFormat;  
import java.util.ArrayList;  
import java.util.List;  

import org.apache.poi.hssf.usermodel.HSSFCell;  
import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
import org.apache.poi.hssf.usermodel.HSSFRow;  
import org.apache.poi.hssf.usermodel.HSSFSheet;  
import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
 
public class CreateSimpleExcel
    
   /**  
    * 	手工构建一个简单格式的Excel  
    */    
   private static List<Members> getMembers() throws Exception{    
       List list = new ArrayList();    
       SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");    
   
       Members m1 = new Members(1, "牛一", 21, df.parse("1991-08-10"));    
       Members m2 = new Members(2, "牛二", 22, df.parse("1992-09-11"));    
       Members m3 = new Members(3, "牛三", 23, df.parse("1983-10-12"));    
       list.add(m1);    
       list.add(m2);    
       list.add(m3);  
       return list;    
   }    
   
   public static void main(String[] args) throws Exception {    
       // 第一步,创建一个webbook,对应一个Excel文件    
       HSSFWorkbook wb = new HSSFWorkbook();    
       // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet    
       HSSFSheet sheet = wb.createSheet("学生表one");    
       // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short    
       HSSFRow row = sheet.createRow((int) 0);    
       // 第四步,创建单元格,并设置值表头 设置表头居中    
       HSSFCellStyle style = wb.createCellStyle();    
       style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式    
   
       HSSFCell cell = row.createCell((short) 0);    
       cell.setCellValue("学号");    
       cell.setCellStyle(style);    
       cell = row.createCell((short) 1);    
       cell.setCellValue("姓名");    
       cell.setCellStyle(style);    
       cell = row.createCell((short) 2);    
       cell.setCellValue("年龄");    
       cell.setCellStyle(style);    
       cell = row.createCell((short) 3);    
       cell.setCellValue("生日");    
       cell.setCellStyle(style);    
   
       // 第五步,写入实体数据 实际应用中这些数据从数据库得到,    
       List list = CreateSimpleExcelToDisk.getMembers();    
   
       for (int i = 0; i < list.size(); i++) {    
           row = sheet.createRow((int) i + 1);    
           Members stu = (Members) list.get(i);    
           // 第四步,创建单元格,并设置值    
           row.createCell((short) 0).setCellValue((double) stu.getCode());    
           row.createCell((short) 1).setCellValue(stu.getName());    
           row.createCell((short) 2).setCellValue((double) stu.getAge());    
           cell = row.createCell((short) 3);    
           cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(stu    
                   .getBirthday()));    
       }    
       // 第六步,将文件存到指定位置    
       try {    
           FileOutputStream fout = new FileOutputStream("d:/Members.xls");    
           wb.write(fout);    
           fout.close();    
       }catch (Exception e){    
           e.printStackTrace();    
       }    
   }    
    

替换以上第六步,可实现文件下载,代码如下:

 OutputStream out = null;    
        try {        
            out = response.getOutputStream();    
            String fileName = "members.xls";// 文件名    
            response.setContentType("application/x-msdownload");    
            response.setHeader("Content-Disposition", "attachment; filename="    
                                                    + URLEncoder.encode(fileName, "UTF-8"));    
            wb.write(out);    
        } catch (Exception e) {    
            e.printStackTrace();    
        } finally {      
            try {       
                out.close();      
            } catch (IOException e) {      
                e.printStackTrace();    
            }      
        } 







  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值