poi导出excel
来源:互联网 发布:linux怎么删除文件夹 编辑:程序博客网 时间:2024/04/29 21:16
poi导出excel
==========================================================
一个excel表格(HSSFWorkbook):HSSFWorkbook wb = new HSSFWorkbook();
一个工作表格(sheet): HSSFSheet sheet = wb.createSheet("测试表格");
一行(row): HSSFRow row = sheet.createRow(0);
一个单元格(cell): HSSFCell cell = row.createCell((short)0);
单元格格式(cellstyle): HSSFCellStyle style4 = wb.createCellStyle();
单元格字体(font): HSSFFont font = wb.createFont();
==========================================================
一个excel表格(HSSFWorkbook):HSSFWorkbook wb = new HSSFWorkbook();
一个工作表格(sheet): HSSFSheet sheet = wb.createSheet("测试表格");
一行(row): HSSFRow row = sheet.createRow(0);
一个单元格(cell): HSSFCell cell = row.createCell((short)0);
单元格格式(cellstyle): HSSFCellStyle style4 = wb.createCellStyle();
单元格字体(font): HSSFFont font = wb.createFont();
========================================================
java示例---poi导出excel工具类
/** * poi导出excel工具类 */public class ExcelUtils {private static Logger LOG = LoggerFactory.getLogger(ExcelUtils.class);/** * 合并两个数组 * @param first * @param second * @return */public static <T> T[] concatArray(T[] first, T[] second) { T[] result = Arrays.copyOf(first, first.length + second.length); System.arraycopy(second, 0, result, first.length, second.length); return result; }/** * 写入Excel * @param sheet 工作表格 * @param style 表格样式 * @param columnMap 列名集合 * @param clazz对象类型 * @param objList 数据集合 * @throws Exception */public static void writeToExcel(HSSFSheet sheet, HSSFCellStyle style, Map<String,String> columnMap, Class<?> clazz, List<?> objList) throws Exception{HSSFRow row = sheet.createRow(0);//一行//创建表头HSSFCell cell = null;Class<?> parentClass = clazz.getSuperclass();//对象类型中有继承的情况Field [] parentFields = parentClass.getDeclaredFields();Field [] subFields = clazz.getDeclaredFields();Field [] fields = concatArray(parentFields, subFields);//字段数组int k = 0;for(int i=0; i<fields.length; i++){if(!CollectionUtils.isEmpty(columnMap) && columnMap.keySet().contains(fields[i].getName())){sheet.setColumnWidth(k, 4000);//设置列宽cell = row.createCell(k++);//一个单元格cell.setCellValue((String)columnMap.get(fields[i].getName()));cell.setCellStyle(style);//设置样式}}//数据区for(int i=0; i<objList.size(); i++){ Object obj = objList.get(i); int key = 0; row = sheet.createRow(i + 1); for(int j=0; j<fields.length; j++){ if(!CollectionUtils.isEmpty(columnMap) && columnMap.keySet().contains(fields[j].getName())){ fields[j].setAccessible(true); Object cellValue = fields[j].get(obj); if(cellValue == null){ row.createCell(key++).setCellValue((String)("")); continue; } if(Integer.class == cellValue.getClass()){ row.createCell(key++).setCellValue((Integer)cellValue); }else if(cellValue instanceof Timestamp){ row.createCell(key++).setCellValue((String)cellValue.toString()); }else if(cellValue instanceof Double){ row.createCell(key++).setCellValue((Double)(cellValue)); }else{ row.createCell(key++).setCellValue((String)(cellValue)); } } } }}/** * 设置返回Excel的报文头 * @param wb 表格 * @param response * @param fileName 文件名称 */public static void setResponseExcelHead(HSSFWorkbook wb, HttpServletResponse response, String fileName){//设置下载Excel reponse的头response.setContentType("application/vnd.ms-excel;charset=utf-8"); try {fileName = new String(fileName.getBytes(), "ISO-8859-1");} catch (UnsupportedEncodingException e) {LOG.error("setResponseExcelHead()设置返回Excel的报文头-fileName设置编码-出错,错误信息:{}", e);} response.setHeader("Content-Disposition", "attachment;filename="+fileName); OutputStream os = null;try {os = response.getOutputStream();wb.write(os);} catch (IOException e) {LOG.error("setResponseExcelHead()设置返回Excel的报文头-wb.write-出错,错误信息:{}", e);}finally{try {os.flush();os.close();} catch (IOException e) {LOG.error("setResponseExcelHead()设置返回Excel的报文头-OutputStream-close-出错,错误信息:{}", e);}}}/** * 创建表格样式 * HSSFWorkbook wb 表格 */public static HSSFCellStyle getStyle(HSSFWorkbook wb){//创建样式HSSFCellStyle style = wb.createCellStyle();style.setAlignment(HSSFCellStyle.ALIGN_CENTER);style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框 style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框 style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框 style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框 //创建字体HSSFFont font = wb.createFont(); font.setFontName("黑体"); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);font.setFontHeightInPoints((short) 13);//设置字体大小 style.setFont(font);return style;}/*** * 导出Excel * @param fileName 文件名称 * @param sheetName 工作表格名称 * @param columnMap 列名集合 * @param clazz数据对象类型 * @param objList 数据集合 * @param response * @throws Exception */public static void exportExcel(String fileName, String sheetName, Map<String,String> columnMap, Class<?> clazz, List<?> objList, HttpServletResponse response) throws Exception {HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet(sheetName);//创建表格样式HSSFCellStyle style = getStyle(wb);//写入ExcelwriteToExcel(sheet, style, columnMap, clazz, objList);//设置返回Excel的报文头setResponseExcelHead(wb, response, fileName);}}
0 0
- Excel POI导出excel
- POI-----POI导出Excel实例
- jsp导出excel poi
- POI导出EXCEL
- poi导出Excel
- poi导出excel
- POI 导出excel
- POI 导出excel
- POI 实现导出Excel
- java poi 导出excel
- poi 方式导出excel
- POI 导出Excel
- 使用poi导出excel
- poi导出excel
- poi导出excel实例
- 使用POI导出Excel
- POI 导出EXCEL
- 导出excel poi
- iOS多线程
- Container With Most Water
- Oracle之分组查询
- ZOJ 3861 - Valid Pattern Lock
- jQuery 参考手册 - Ajax
- poi导出excel
- Android中Bitmap,byte[],Drawable,InputStream相互转化工具类
- Nginx+tomcat配置集群负载均衡
- Android app中所有页面的特定颜色,被改变为另一状态,只因使用了getBackground().set…
- Go 性能优化技巧 4/10
- 致给领导的项目总结
- android客户端学习-DatePickerDialog
- jsonp调用及后台java返回
- ZOJ 3866 - Cylinder Candy