標籤:io ar os sp java for 檔案 on 資料
工具 ExcelUtil
【
package com.bjsxt.util; import java.io.FileOutputStream;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Iterator;import java.util.List; import javax.naming.spi.DirStateFactory.Result; import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.bjsxt.po.Teacher; /** * * @author zhai *excel_test<---->com.bjsxt.util *2014-10-23上午12:27:18 Verson-1.0 */public class ExcelUtil { //需要添加標題, fields 代表User類的屬性, list 代表資料 public static void write(String[] titleString, String[] fields , List list) throws Exception{ //聲明 HSSFWorkbook workbook=new HSSFWorkbook(); //建立excel 和標題(主鍵) HSSFSheet sheet=workbook.createSheet(); HSSFRow title = sheet.createRow(0); for(int i=0; i<titleString.length;i++){ //遍曆標題的行列 title.createCell(i).setCellValue(titleString[i]); } //聲明受影響的行數 int count =1; for(Iterator iterator=list.iterator(); iterator.hasNext();){ //放置一個動態資料 reflect Object obj=iterator.next(); //建立一個row HSSFRow row= sheet.createRow(count++); //擷取dynamic 資料(通用的) Class cc= obj.getClass(); //擷取使用者屬性 for(int i=0; i<fields.length; i++){ String fileName = fields[i]; // id getId name getName //擷取使用者類型屬性 Field filed = cc.getDeclaredField(fileName); Class type = filed.getType(); //擷取方法 和方法名 String methodName= "get"+fileName.substring(0,1).toUpperCase()+fileName.substring(1); Method method= cc.getDeclaredMethod(methodName); Object invoke = method.invoke(obj); if("Integer".equals(type.getSimpleName())){ row.createCell(i).setCellValue((Integer)invoke); }else if( "String".equals(type.getSimpleName())){ row.createCell(i).setCellValue((String)invoke); }else{ row.createCell(i).setCellValue("請檢查資料或書寫格式~-~"); } } FileOutputStream stream=new FileOutputStream("c:/zsf.xls"); workbook.write(stream); stream.close(); } } public static void main(String[] args) throws Exception { List<Teacher> list= new ArrayList<Teacher>(); for(int i=0; i<30;i++){ list.add(new Teacher(i, "laoliang", "5888")); } //對用的索引值對 String[] tiString={"主鍵","姓名","薪水"}; String[] fields={"id", "name","salary"}; ExcelUtil.write(tiString, fields, list); }}】測試【package com.bjsxt; import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class Test { public static void main(String[] args) throws IOException { HSSFWorkbook workbook =new HSSFWorkbook(); //建立表格 HSSFSheet sheet=workbook.createSheet(); //建立 行 列 HSSFRow row = sheet.createRow(0); HSSFCell cell = row.createCell(0); //寫入資料 cell.setCellValue("zhaisong88"); //輸出到檔案 FileOutputStream stream =new FileOutputStream("c:/zsf.xls"); workbook.write(stream); System.out.println("OK"); }} 】
ExcelUtil以及匯出