poi excel

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();
	}

 

你可能感兴趣的:(Excel)