poi報表匯出
阿新 • • 發佈:2019-02-03
一、 POI簡介
Apache POI是Apache軟體基金會的開放原始碼函式庫,POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。
二、 HSSF概況
HSSF 是Horrible SpreadSheet Format的縮寫,通過HSSF,你可以用純Java程式碼來讀取、寫入、修改Excel檔案。HSSF 為讀取操作提供了兩類API:usermodel和eventusermodel,即“使用者模型”和“事件-使用者模型”。
三: POI EXCEL文件結構類
HSSFWorkbook excel文件物件
HSSFSheet excel的sheet HSSFRow excel的行
HSSFCell excel的單元格 HSSFFont excel字型
HSSFName 名稱 HSSFDataFormat 日期格式
HSSFHeader sheet頭
HSSFFooter sheet尾
HSSFCellStyle cell樣式
HSSFDateUtil 日期
HSSFPrintSetup 列印
HSSFErrorConstants 錯誤資訊表
以上為POI的基本介紹 下面通過例子展開詳解:(運用的開發軟體為IDEA)
pom的節點
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17-beta1</version> </dependency>建立Student實體類:將其屬性進行get,set封裝
public class Student { private Integer id; private String name; private Integer age; 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 Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
建立測試類Text:
public class Text { @Test public void test() throws IOException { //建立HSSFWorkbook物件 HSSFWorkbook wk=new HSSFWorkbook(); //建立HSSFSHeet物件(excel表單) HSSFSheet sheet=wk.createSheet("學生表"); HSSFRow row=sheet.createRow(0); HSSFCell cell=row.createCell((short)0); cell.setCellValue("學生編號"); cell=row.createCell((short)1); cell.setCellValue("學生姓名"); cell=row.createCell((short)2); cell.setCellValue("學生年齡"); List<Student> list=new ArrayList<Student>(); Student student=new Student(); student.setId(1); student.setName("軒軒"); student.setAge(20); Student student1=new Student(); student1.setId(2); student1.setName("娜娜"); student1.setAge(16); list.add(student); list.add(student1); 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).getAge()); } /*第一種方式*/ /* HSSFRow row=sheet.createRow(0); HSSFCell cell=row.createCell(0); cell.setCellValue("學生成績表"); sheet.addMergedRegion(new CellRangeAddress(0,0,0,2)); HSSFRow row1=sheet.createRow(1); row1.createCell(0).setCellValue("學生編號"); row1.createCell(1).setCellValue("學生姓名"); row1.createCell(2).setCellValue("學生年齡"); HSSFRow row3=sheet.createRow(2); row3.createCell(0).setCellValue("1"); row3.createCell(1).setCellValue("啦啦"); row3.createCell(2).setCellValue("16");*/ FileOutputStream outputStream=new FileOutputStream("E:\\workbooks.xls"); wk.write(outputStream); outputStream.flush(); } }
第一種方式結果:
第二種方式結果: