1. 包描述
HSSF - 提供读写Microsoft Excel XLS格式档案的功能。
XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
HWPF - 提供读写Microsoft Word DOC格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读Microsoft Visio格式档案的功能。
HPBF - 提供读Microsoft Publisher格式档案的功能。
HSMF - 提供读Microsoft Outlook格式档案的功能。
2,相关java测试代码
/** * excel */ private static void exportExcel(String fileName) { //1.声明一个工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); //2.生成一个表格 HSSFSheet sheet = workbook.createSheet("sheet_title"); //3.表格设置 // 3.1 合并单元格 cell1(row,column),cell2(row,column) sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0)); // 3.2 列自适应 sheet.autoSizeColumn(0); // 3.3 数据验证 // sheet.addValidationData(dataValidation) // 3.4设置表格默认列宽度为15个字节 sheet.setDefaultColumnWidth((short) 15); // 3.5 设置列宽,对具体每一列进行设值 // sheet.setColumnWidth(0, 256 * 13); // sheet.setColumnWidth(1, 4000); //4 样式设置 // 4.1 生成一个样式 HSSFCellStyle style = workbook.createCellStyle(); // 4.2 背景颜色 style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);// 填充颜色 style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);// 填充方式 /** * 自定义背景颜色 * HSSFPalette palette = workbook.getCustomPalette(); //wb * HSSFWorkbook对象 palette.setColorAtIndex((short) 9, (byte) (181), * (byte) (193), (byte) (230)); style.setFillForegroundColor((short) 9); */ // 4.3 设置上下左右边框 style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); // 4.4 设置居中对齐 style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 4.5 设置垂直居中 style.setVerticalAlignment((short) 1); // 4.6 自动换行 style.setWrapText(true); // cell.setCellValue("row \r\n one"); //4.7 字体 HSSFFont fontBoldBlack12 = workbook.createFont(); fontBoldBlack12.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 加粗 fontBoldBlack12.setColor(HSSFColor.BLACK.index);// 字体颜色 fontBoldBlack12.setFontHeightInPoints((short) 12);// 字体大小 style.setFont(fontBoldBlack12); // 4.8声明一个画图的顶级管理器 HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); // 定义注释的大小和位置,详见文档 HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short) 4, 2, (short) 6, 5)); // 设置注释内容 comment.setString(new HSSFRichTextString("可以在POI中添加注释!")); // 设置注释作者,当鼠标移动到单元格上是可以在状态栏中看到该内容. comment.setAuthor("leno"); // 4.9 对一个cell设置多个字体样式,可以用 HSSFRichTextString HSSFRichTextString text = new HSSFRichTextString("header1"); // text.applyFont(startIndex, endIndex, font) // cell.setCellValue(text); // 创建行 Row row1 = sheet.createRow(0); // 创建列 Cell cell1 = row1.createCell(0); // 设置样式 cell1.setCellStyle(style); // 设置值 cell1.setCellValue("cell value"); // 设置类型 cell1.setCellType(Cell.CELL_TYPE_STRING); cell1.setCellComment(comment); // cell1.setCellErrorValue(arg0) //4.10 创建超链接 HSSFHyperlink link = new HSSFHyperlink(HSSFHyperlink.LINK_URL); link.setAddress("http://www.baidu.com"); cell1.setCellValue("百度"); cell1.setHyperlink(link);// 设定单元格的链接 // 有图片时,设置行高为60px; // row1.setHeightInPoints(60); // 设置图片所在列宽度为80px,注意这里单位的一个换算 // sheet.setColumnWidth(1, (short) (35.7 * 80)); // sheet.autoSizeColumn(i); // byte[] bsValue = (byte[]) value; // HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, // 1023, 255, (short) 6, index, (short) 6, index); // anchor.setAnchorType(2); // patriarch.createPicture(anchor, workbook.addPicture( // bsValue, HSSFWorkbook.PICTURE_TYPE_JPEG)); // 将文件存到指定位置 try { FileOutputStream fout = new FileOutputStream(fileName); workbook.write(fout); fout.close(); } catch (Exception e) { e.printStackTrace(); } // 如果采用 spring mvc, control如下: // HSSFWorkbook wb = service.export(list); // response.setContentType("application/vnd.ms-excel"); // response.setHeader("Content-disposition", // "attachment;filename=excelName.xls"); // OutputStream ouputStream = response.getOutputStream(); // wb.write(ouputStream); // ouputStream.flush(); // ouputStream.close(); }