注意:HSSFWorkBook对应2003版Excel XSSFWorkBook对应2007以上的Excel
一.创建时间单元格
public void helloPoi3() throws Exception { Workbook wb = new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet = wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页 Row row = sheet.createRow(0); // 创建一个行 Cell cell = row.createCell(0); // 创建一个单元格 第1列 cell.setCellValue(new Date()); // 给单元格设置值 // 第一种 CreationHelper createHelper = wb.getCreationHelper(); CellStyle cellStyle = wb.createCellStyle(); // 单元格样式类 cellStyle.setDataFormat(createHelper.createDataFormat().getFormat( "yyy-mm-dd hh:mm:ss")); cell = row.createCell(1); // 第二列 cell.setCellValue(new Date()); cell.setCellStyle(cellStyle); // 第二种 cell = row.createCell(2); // 第三列 cell.setCellValue(Calendar.getInstance()); cell.setCellStyle(cellStyle); FileOutputStream fileOut = new FileOutputStream("F:\工作簿.xls"); wb.write(fileOut); fileOut.close(); }
二.处理不同格式数据
@Test public void helloPoi4() throws Exception { Workbook wb = new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet = wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页 Row row = sheet.createRow(0); // 创建一个行 Cell cell = row.createCell(0); // 创建一个单元格 第1列 cell.setCellValue(new Date()); // 给单元格设置值 row.createCell(1).setCellValue(1); row.createCell(2).setCellValue("一个字符串"); row.createCell(3).setCellValue(true); row.createCell(4).setCellValue(HSSFCell.CELL_TYPE_NUMERIC); row.createCell(5).setCellValue(false); FileOutputStream fileOut = new FileOutputStream("F:\工作簿1.xls"); wb.write(fileOut); fileOut.close(); }
三.遍历excel 的sheet
@Test public void helloPoi5() throws Exception { XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("F:\开发任务.xlsx")); XSSFSheet hssSheet = wb.getSheetAt(0); if (hssSheet == null) { return; } // 遍历行 for (int rowNum = 0; rowNum <= hssSheet.getLastRowNum(); rowNum++) { XSSFRow hssRow = hssSheet.getRow(rowNum); if (hssRow == null) { continue; } //遍历列 for (int cellNum = 0; cellNum <= hssRow.getLastCellNum(); cellNum++) { XSSFCell hssCell = hssRow.getCell(cellNum); if (hssCell == null) { continue; } System.out.print(" " + getValue(hssCell)); } System.out.println(); } } private static String getValue(XSSFCell hssfCell){ if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){ return String.valueOf(hssfCell.getBooleanCellValue()); }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){ return String.valueOf(hssfCell.getNumericCellValue()); }else{ return String.valueOf(hssfCell.getStringCellValue()); } }
四.获取excel内的文本信息
@Test public void helloPoi6()throws Exception{ InputStream is=new FileInputStream("F:\工作簿1.xls"); POIFSFileSystem fs=new POIFSFileSystem(is); HSSFWorkbook wb=new HSSFWorkbook(fs); ExcelExtractor excelExtractor=new ExcelExtractor(wb); excelExtractor.setIncludeSheetNames(false);// 我们不需要Sheet页的名字 System.out.println(excelExtractor.getText()); }