当前位置: 代码迷 >> Web前端 >> Excel导出范例
  详细解决方案

Excel导出范例

热度:131   发布时间:2012-08-31 12:55:03.0
Excel导出实例
在软件开发中,我们经常会遇到将数据输出的事情,输出Excel更是经常用的。在此仅写简单导出Excel的一些代码,其余的根据个人情况适当改写。
导入poi的jar包是必须的。
GZIPOutputStream OutputStream = null;
// 创建一个新的Excel
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建工作簿
HSSFSheet sheet = workbook.createSheet("test");
// 创建设置样式的对象
HSSFCellStyle cellStyle = workbook.createCellStyle();
// 创建调色板
HSSFPalette palette = workbook.getCustomPalette();
// 设置前景色
palette.setColorAtIndex((short)9, (byte)(182), (byte)(182), (byte)(182));
// 设置字体样式
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND );
// 设置背景色
cellStyle.setFillForegroundColor((short)9);
// 设置对齐方式
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 创建第一行
HSSFRow row = sheet.createRow(0);
// 创建第一行第一列
HSSFCell cell = row.createCell(0);
// 第一行第一列设置样式
cell.setCellStyle(cellStyle);
// 设置列宽
sheet.setColumnWidth(0, 3000);
// 设置值
cell.setCellValue(new HSSFRichTextString("NAME"));
				
cell = row.createCell(1);
cell.setCellStyle(cellStyle);
sheet.setColumnWidth(1, 5000);
cell.setCellValue(new HSSFRichTextString("AGE"));

				
HSSFCellStyle cellStyle2 = workbook.createCellStyle();
cellStyle2.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
// 从数据库查出数据循环导入到Excel中,查出数据返回集合list
// list封装domain,从domain里取数据
for(int i = 0;i < list.size();i++){
	row = sheet.createRow(i+1);
	cell = row.createCell(0);
	TestDomain domain = (TestDomain )list.get(i);
	cell.setCellValue(new HSSFRichTextString(domain.getName());
	cell = row.createCell(1);
	cell.setCellStyle(cellStyle2);
	cell.setCellValue(new HSSFRichTextString(domain.getAge());
}

response.reset();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Encoding", "gzip");
response.addHeader("Content-Disposition", "inline;filename=test.xls");

outputStream = new GZIPOutputStream(response.getOutputStream());

workbook.write(outputStream);
outputStream.flush();
  相关解决方案