POI操作Excel
Posted xy-ouyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POI操作Excel相关的知识,希望对你有一定的参考价值。
1、第一个demo:创建工作簿,创建sheet页,创建单元格
导包:poi-3.9-20121203.jar
public static void main(String[] args) 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(1); // 给单元格设置值 row.createCell(1).setCellValue(1.2); // 创建一个单元格 第2列 值是1.2 row.createCell(2).setCellValue("这是一个字符串类型"); // 创建一个单元格 第3列 值为一个字符串 row.createCell(3).setCellValue(false); // 创建一个单元格 第4列 值为布尔类型 FileOutputStream fileOut = new FileOutputStream("d:\\Poi生成的excel.xls"); wb.write(fileOut); fileOut.close();
2、创建一个时间格式的单元格
public static void main(String[] args) 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()); // 给单元格设置值 // 单元格样式类 CellStyle cellStyle = wb.createCellStyle(); CreationHelper createHelper = wb.getCreationHelper(); 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("d:\\工作簿.xls"); wb.write(fileOut); fileOut.close();
3、遍历工作簿的行和列并获取单元格内容
public static void main(String[] args) throws Exception InputStream is = new FileInputStream("d:\\工作簿1.xls"); POIFSFileSystem fs = new POIFSFileSystem(is); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet hssfSheet = wb.getSheetAt(0); // 获取第一个Sheet页 if (hssfSheet == null) return; // 遍历行Row for (int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++) HSSFRow hssfRow = hssfSheet.getRow(rowNum); if (hssfRow == null) continue; // 遍历列Cell for (int cellNum = 0; cellNum <= hssfRow.getLastCellNum(); cellNum++) HSSFCell hssfCell = hssfRow.getCell(cellNum); if (hssfCell == null) continue; System.out.print(" " + getValue(hssfCell)); System.out.println(); private static String getValue(HSSFCell 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());
4、文本提取
public static void main(String[] args) throws Exception InputStream is = new FileInputStream("d:\\工作簿1.xls"); POIFSFileSystem fs = new POIFSFileSystem(is); HSSFWorkbook wb = new HSSFWorkbook(fs); ExcelExtractor excelExtractor = new ExcelExtractor(wb); // false:不打印Sheet页的名字 excelExtractor.setIncludeSheetNames(true); System.out.println(excelExtractor.getText());
5、
以上是关于POI操作Excel的主要内容,如果未能解决你的问题,请参考以下文章