日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通用Excel文件导出工具类

發(fā)布時間:2023/12/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通用Excel文件导出工具类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1:Excel格式

2:ExcelUtil.java

import java.io.ByteArrayOutputStream; import java.io.IOException; import java.lang.reflect.Field; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.util.CellRangeAddress;/*** @作者 yan* @創(chuàng)建日期* @版本 V1.0* @描述 Excel 導出通用工具類*/ public class ExcelUtil {public static byte[] export(String sheetTitle, String[] title, List<Object> list) {HSSFWorkbook wb = new HSSFWorkbook();//創(chuàng)建excel表HSSFSheet sheet = wb.createSheet(sheetTitle);sheet.setDefaultColumnWidth(20);//設置默認行寬//表頭樣式(加粗,水平居中,垂直居中)HSSFCellStyle cellStyle = wb.createCellStyle();cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中//設置邊框樣式cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下邊框cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框 HSSFFont fontStyle = wb.createFont();fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);cellStyle.setFont(fontStyle);//標題樣式(加粗,垂直居中)HSSFCellStyle cellStyle2 = wb.createCellStyle();cellStyle2.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 cellStyle2.setFont(fontStyle);//設置邊框樣式cellStyle2.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下邊框cellStyle2.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框cellStyle2.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框cellStyle2.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框//字段樣式(垂直居中)HSSFCellStyle cellStyle3 = wb.createCellStyle();cellStyle3.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中//設置邊框樣式cellStyle3.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下邊框cellStyle3.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框cellStyle3.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框cellStyle3.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框//創(chuàng)建表頭HSSFRow row = sheet.createRow(0);row.setHeightInPoints(20);//行高 HSSFCell cell = row.createCell(0);cell.setCellValue(sheetTitle);cell.setCellStyle(cellStyle);sheet.addMergedRegion(new CellRangeAddress(0,0,0,(title.length-1)));//創(chuàng)建標題HSSFRow rowTitle = sheet.createRow(1);rowTitle.setHeightInPoints(20);HSSFCell hc;for (int i = 0; i < title.length; i++) {hc = rowTitle.createCell(i);hc.setCellValue(title[i]);hc.setCellStyle(cellStyle2);}byte result[] = null;ByteArrayOutputStream out = null;try {//創(chuàng)建表格數(shù)據(jù) Field[] fields;int i = 2;for (Object obj : list) {fields = obj.getClass().getDeclaredFields();HSSFRow rowBody = sheet.createRow(i);rowBody.setHeightInPoints(20);int j = 0;for (Field f : fields) {f.setAccessible(true);Object va = f.get(obj);if (null == va) {va = "";}hc = rowBody.createCell(j);hc.setCellValue(va.toString());hc.setCellStyle(cellStyle3);j++;}i++;}out = new ByteArrayOutputStream();wb.write(out);result = out.toByteArray();} catch (Exception ex) {Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex);} finally{try {if(null != out){out.close();}} catch (IOException ex) {Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex);} finally{try {wb.close();} catch (IOException ex) {Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex);}}}return result;} }

?

3:測試

public static void main(String[] args) {String sheetTitle = "用戶信息";String[] title = {"姓名", "年齡"};List<Object> list = new ArrayList<Object>();for(int i=0;i<10;i++){User u = new User();u.setUname("張三"+i);u.setAge(10+i);list.add(u);}byte b[] = ExcelUtil.export(sheetTitle, title, list);File f = new File("G:\\tmp\\"+sheetTitle+".xls");try {FileUtils.writeByteArrayToFile(f, b, true);} catch (IOException ex) {Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);}}

?

4:依賴包

commons-io-2.4.jar

poi-3.15.jar

?

總結

以上是生活随笔為你收集整理的通用Excel文件导出工具类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。