java 导出Excel文件
最近在做一个文件导出功能,发现大部分博客上通过引用各种的util工具包,其实说白了还是利用apache的poi,在项目中直接导入poi包就可以。直面其原理,随个人喜好封装。
1、首先准备一些poi的jar包
1、首先准备一些poi的jar包
2、准备好jar包之后就可以写代码了,接下来我就把代码写简单,让大家都能看懂。至于你后面想用多么牛逼的代码实现它,都可以,只要原理懂了,其它的都不是事,对吧。
首先我要建一个实体类:Student.class
package testExport;/** * * @author lf * */public class Student { private Integer id; private String name; private String sex; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; }}还有一个导出类 ExportExcel.classpackage testExport;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.swing.JOptionPane;//下面是和数据导出有关的包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 ExportExcel { public void Export(){ // 声明一个工作薄 HSSFWorkbook wb = new HSSFWorkbook(); //声明一个单子并命名 HSSFSheet sheet = wb.createSheet(学生表); //给单子名称一个长度 sheet.setDefaultColumnWidth((short)15); // 生成一个样式 HSSFCellStyle style = wb.createCellStyle(); //创建第一行(也可以称为表头) HSSFRow row = sheet.createRow(0); //样式字体居中 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); //添加一些数据,这里先写死,大家可以换成自己的集合数据 List<student> list = new ArrayList<student>(); list.add(new Student(111,张三,男)); list.add(new Student(111,李四,男)); list.add(new Student(111,王五,女)); //向单元格里填充数据 for (short i = 0; i < list.size(); i++) { row = sheet.createRow(i + 1); row.createCell(0).setCellValue(list.get(i).getId()); row.createCell(1).setCellValue(list.get(i).getName()); row.createCell(2).setCellValue(list.get(i).getSex()); } try { //默认导出到E盘下 FileOutputStream out = new FileOutputStream(E://学生表.xls); wb.write(out); out.close(); JOptionPane.showMessageDialog(null, 导出成功!); } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(null, 导出失败!); e.printStackTrace(); } catch (IOException e) { JOptionPane.showMessageDialog(null, 导出失败!); e.printStackTrace(); } }} 下面看一下效果图: |
浙公网安备 33010602011771号