使用POI包进行Excel文件操作(1)

利用poi包创建excel文件,并根据不同的数据格式填入数据:

// 1,创建工作簿
HSSFWorkbook wb = new HSSFWorkbook();
// 2,创建工作表
HSSFSheet sheet = wb.createSheet("员工信息统计");
// 3,创建标题行
HSSFRow row = sheet.createRow(0);
// 4,设置行高
row.setHeightInPoints(20);
// 5,创建单元格
HSSFCell cell = row.createCell(0, HSSFCell.CELL_TYPE_STRING);// 参数:columnIndex,type


设置单元格样式和内容:

// 6,设置单元格样式
//   6.1 对齐方式
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
//   6.2 边框
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
//   6.3 单元格填充色
cellStyle.setFillForegroundColor(IndexedColors.LIGHT_GREEN.getIndex());
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);// 前景色填充方式
//   6.4 字体
HSSFFont titleFont = wb.createFont();
titleFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
titleFont.setColor(HSSFFont.COLOR_RED);
titleFont.setFontHeightInPoints((short) 10);
cellStyle.setFont(titleFont);

cell.setCellStyle(cellStyle);
// 7,设置单元格中的内容
cell.setCellValue("序号");
// 8,重复以上步骤,创建更多的单元格
cell = row.createCell(1, HSSFCell.CELL_TYPE_STRING);
cell.setCellStyle(cellStyle);
cell.setCellValue("姓名");

cell = row.createCell(2, HSSFCell.CELL_TYPE_STRING);
cell.setCellStyle(cellStyle);
cell.setCellValue("出生日期");

cell = row.createCell(3, HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellStyle(cellStyle);
cell.setCellValue("月工资");


输出数据内容:

// 创建日期单元格样式
HSSFCellStyle birthdayCellStyle = wb.createCellStyle();
// 为单元格样式设置日期格式
birthdayCellStyle.setDataFormat(wb.getCreationHelper()
				.createDataFormat().getFormat("yyyy-MM-dd"));
// 创建数据单元格样式
HSSFCellStyle salaryCellStyle = wb.createCellStyle();
HSSFDataFormat dataFormat = wb.createDataFormat();
salaryCellStyle.setDataFormat(dataFormat.getFormat("#,##0.00"));// 具体格式可以参考BuiltinFormats类源代码

// 9,创建数据行
for (int i = 0; i < users.size(); i++) {
	UserInfo userInfo = users.get(i);
	row = sheet.createRow(i + 1);
	// 序号
	row.createCell(0, HSSFCell.CELL_TYPE_NUMERIC).setCellValue(
			userInfo.getId());
	// 姓名
	row.createCell(1, HSSFCell.CELL_TYPE_STRING).setCellValue(
			userInfo.getName());
	// 创建出生日期单元格
	HSSFCell tempCell = row.createCell(2);
	// 将样式设置到单元格上
	tempCell.setCellStyle(birthdayCellStyle);
	// 设置单元格的内容
	tempCell.setCellValue(userInfo.getBirthday());

	// 创建月工资单元格
	tempCell = row.createCell(3);
	tempCell.setCellStyle(salaryCellStyle);
	tempCell.setCellValue(userInfo.getSalary());

	/*
	 * 如果要将出生日期的值放入合并单元格中,则使用如下语句 row.createCell(3); CellRangeAddress
	 * cra=new CellRangeAddress(i+1,i+1,2,3);
	 * sheet.addMergedRegion(cra);
	 */
}
// 设置第二列自动调整宽度
sheet.autoSizeColumn(2);


将工作簿写入磁盘文件中:

// 10,构造文件对象
File file = new File("d:\\temp.xls");
try {
	// 11,文件输出流
	FileOutputStream fos = new FileOutputStream(file);
	// 12,将工作簿写入文件
	wb.write(fos);
	// 13,关闭文件输出流
	fos.close();
} catch (FileNotFoundException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

 

结束。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值