使用的jar包:
poi-3.17.jar
poi-examples-3.17.jar
poi-excelant-3.17.jar
poi-ooxml-3.17.jar
poi-ooxml-schemas-3.17.jar
poi-scratchpad-3.17.jar

对自己使用poi的一个简单的总结,备忘一下供自己以后参考,也希望对刚接触poi的朋友有所帮助,其他一些样式的使用方法请自行上网搜索。


// 创建HSSFWorkbook对象(excel的文档对象)
	HSSFWorkbook workbook = new HSSFWorkbook();
	//设置字体样式
	HSSFFont font = workbook.createFont();
	font.setFontName("宋体");
	font.setFontHeightInPoints((short) 14);// 设置字体大小
	
	// 建立新的sheet对象(excel的表单)
	HSSFSheet sheet = workbook.createSheet();
	//定义行样式
	HSSFCellStyle cell_Style = (HSSFCellStyle) workbook.createCellStyle();
	cell_Style.setBorderBottom(BorderStyle.THIN); // 下边框
	cell_Style.setBorderLeft(BorderStyle.THIN);// 左边框
	cell_Style.setBorderTop(BorderStyle.THIN);// 上边框
	cell_Style.setBorderRight(BorderStyle.THIN);// 右边框
	cell_Style.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直对齐居中
	
	//字体样式定义完成后要放入行样式中才能生效
	cell_Style.setFont(font);
//创建第一行
	HSSFRow row = sheet.createRow((short) 0);
	// 表头第一行合并5列    参数(第一行,第一行,第一列,第五列)
	CellRangeAddress region = new CellRangeAddress(0, 0, 0, 4);
	sheet.addMergedRegion(region);
	
	HSSFCell cell = null;
	for (int i = 0; i < title.size(); i++) {
		//循环创建单元格
		cell = row.createCell(i);
		//设置精准行高      参数(想设置的行高*20)=Excel中的行高
		row.setHeight((short)(43.5*20));
		//为单元格附加样式
		cell.setCellStyle(cell_Style);
		//将值传入单元格中
		cell.setCellValue(title.get(i));
	}
	//循环的数据内容从第几行数开始
	//表头部占了4行
	int k=3;
	
	//定义序号列的值
	int j=1;
	//  str我是用String数组来存储数据的
		for (int i = 0; i < str.length; i=i++) {
			// 创建循环数据的第一行
			HSSFRow nextRow = sheet.createRow(k);
			// 创建第一列   根据需要来创建多少列
			HSSFCell cell0 = nextRow.createCell(0);
			//赋予第一列样式
			cell0.setCellStyle(cell_Style);
			// 赋值 序号 
			cell0.setCellValue(j);
			}
	//精准设置列宽  参数(第几列,(int)((要设置的列宽 + 0.72) * 256))=Excel列宽
	sheet.setColumnWidth(0, (int)((8.38 + 0.72) * 256));
	//列宽的设置写在最后
	sheet.autoSizeColumn(i);//自动调整列宽