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

来源:互联网 发布:淘宝店铺卖了有风险吗 编辑:程序博客网 时间:2024/05/20 06:51

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

 

结束。

 

原创粉丝点击