java 導出Excel文件


最近在做一個文件導出功能,發現大部分博客上通過引用各種的util工具包,其實說白了還是利用apache的poi,在項目中直接導入poi包就可以。直面其原理,隨個人喜好封裝。
 
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.class
package 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();
        }
    }
}
 下面看一下效果圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM