jxl示例

创建xls文件:

    public static void testJxmWrite(String[] args) {
        WritableWorkbook workbook = null;
        try {
            // 创建工作薄
            workbook = Workbook.createWorkbook(new File("example.xls"));
 
            // 创建工作表
            WritableSheet sheet = workbook.createSheet("工作表", 0);
 
            // 添加表头
            Label name = new Label(0, 0, "用户名");
            sheet.addCell(name);
            Label amount = new Label(1, 0, "金额");
            sheet.addCell(amount);
            Label date = new Label(2, 0, "时间");
            sheet.addCell(date);
 
            // 添加数据
            sheet.addCell(new Label(0, 1, "admin"));
            sheet.addCell(new jxl.write.Number(1, 1, 1000));
            DateFormat customDateFormat = new DateFormat(
                    "yyyy年MM月dd日 HH:mm:ss");
            WritableCellFormat dateFormat = new WritableCellFormat(
                    customDateFormat);
            sheet.addCell(new DateTime(2, 1, new Date(), dateFormat));
 
            // 写入文件
            workbook.write();
        }
        catch (IOException | WriteException e) {
            LOGGER.error("创建文件出错", e);
        }
        finally {
            if (workbook != null) {
                if (workbook != null) {
                    try {
                        workbook.close();
                    }
                    catch (Throwable t) {
                        LOGGER.error("关闭workbook出错");
                    }
                }
            }
        }
    }

读取xls文件:

public static void testJxlRead(String[] args) {
        Workbook workbook = null;
        try {
            // 读取工作薄
            workbook = Workbook.getWorkbook(new File("example.xls"));
 
            // 读取工作表
            Sheet sheet = workbook.getSheet(0);
             
            for (int i=0; i<sheet.getRows(); i++) {
                for (int j=0; j<sheet.getColumns();j++) {
                    System.out.print(sheet.getCell(j, i).getContents());
                    System.out.print("\t");
                }
                System.out.println();
            }
        }
        catch (IOException | BiffException e) {
            LOGGER.error("读取文件出错", e);
        }
        finally {
            if (workbook != null) {
                if (workbook != null) {
                    try {
                        workbook.close();
                    }
                    catch (Throwable t) {
                        LOGGER.error("关闭workbook出错");
                    }
                }
            }
        }
    }

POI示例

创建xlsx文件

    public static void testPoiWrite() {
        try (OutputStream fileOut = new FileOutputStream("example.xlsx")) {
            // 创建gongzuob
            try (Workbook wb = new XSSFWorkbook()) {
 
                // 创建工作表
                Sheet sheet = wb.createSheet("new sheet");
 
                CreationHelper createHelper = wb.getCreationHelper();
 
                // 创建标题行
                Row row = sheet.createRow(0);
                row.createCell(0).setCellValue("用户名");
                row.createCell(1).setCellValue("金额");
                row.createCell(2).setCellValue("时间");
 
                // 添加数据行
                row = sheet.createRow(1);
                row.createCell(0).setCellValue("admin");
                row.createCell(1).setCellValue("1000");
                CellStyle cellStyle = wb.createCellStyle();
                cellStyle.setDataFormat(createHelper.createDataFormat()
                        .getFormat("yyyy-MM-dd HH:mm:ss"));
                Cell cell = row.createCell(2);
                cell.setCellValue(new Date());
                cell.setCellStyle(cellStyle);
 
                wb.write(fileOut);
            }
        }
        catch (IOException e) {
            LOGGER.error("创建文件出错", e);
        }
    }

读取xlsx文件

   public static void testPoiRead(String[] args) {
        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try (Workbook wb = WorkbookFactory.create(new File("example.xlsx"))) {
            for (Sheet sheet : wb) {
                for (Row row : sheet) {
                    for (Cell cell : row) {
                        switch (cell.getCellType()) {
                        case Cell.CELL_TYPE_STRING:
                            System.out.print(
                                    cell.getRichStringCellValue().getString());
                            break;
                        case Cell.CELL_TYPE_NUMERIC:
                            if (DateUtil.isCellDateFormatted(cell)) {
                                System.out.print(
                                        sdf.format(cell.getDateCellValue()));
                            }
                            else {
                                System.out.print(cell.getNumericCellValue());
                            }
                            break;
                        case Cell.CELL_TYPE_BOOLEAN:
                            System.out.print(cell.getBooleanCellValue());
                            break;
                        case Cell.CELL_TYPE_FORMULA:
                            System.out.print(cell.getCellFormula());
                            break;
                        default:
                            System.out.print("");
                            break;
                        }
                        System.out.print("\t");
                    }
                    System.out.println();
                }
            }
 
        }
        catch (EncryptedDocumentException | InvalidFormatException
                | IOException e) {
            LOGGER.error("读取文件出错", e);
        }
    }