Apache POI中的数据读写与格式化

人工智能梦工厂 2019-04-20 ⋅ 52 阅读

Apache POI是一个用于读写Microsoft Office格式文件的Java库。它支持读写Microsoft Word、Excel和PowerPoint格式文件,并具有丰富的功能和格式化选项。本篇博客将介绍如何使用Apache POI进行数据读写和格式化。

数据读取

Apache POI提供了丰富的API来读取Microsoft Office格式文件中的数据。对于Excel文件,可以使用org.apache.poi.ss.usermodel包中的类来读取数据。

import org.apache.poi.ss.usermodel.*;

public class ExcelReader {
    public static void main(String[] args) throws Exception {
        Workbook workbook = WorkbookFactory.create(new File("data.xlsx"));
        Sheet sheet = workbook.getSheetAt(0);
        for (Row row : sheet) {
            for (Cell cell : row) {
                // 读取单元格数据
                switch (cell.getCellType()) {
                    case STRING:
                        System.out.print(cell.getStringCellValue() + "\t");
                        break;
                    case NUMERIC:
                        System.out.print(cell.getNumericCellValue() + "\t");
                        break;
                    case BOOLEAN:
                        System.out.print(cell.getBooleanCellValue() + "\t");
                        break;
                    default:
                        System.out.print("\t");
                }
            }
            System.out.println();
        }
        workbook.close();
    }
}

以上代码会读取名为"data.xlsx"的Excel文件的第一个Sheet中的数据,并将其打印到控制台上。

数据写入

除了读取数据,Apache POI还提供了API来进行数据写入。可以使用org.apache.poi.ss.usermodel包中的类来创建和写入Excel文件。

import org.apache.poi.ss.usermodel.*;

public class ExcelWriter {
    public static void main(String[] args) throws Exception {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");
        Row headerRow = sheet.createRow(0);
        Cell headerCell = headerRow.createCell(0);
        headerCell.setCellValue("Name");

        Row dataRow = sheet.createRow(1);
        Cell dataCell = dataRow.createCell(0);
        dataCell.setCellValue("John Smith");

        FileOutputStream outputStream = new FileOutputStream("output.xlsx");
        workbook.write(outputStream);
        workbook.close();
        outputStream.close();
    }
}

以上代码会创建一个新的Excel文件,包含一个名为"Sheet1"的Sheet,其中第一行为标题行,第二行为数据行。将其保存为"output.xlsx"。

格式化

在Apache POI中,可以对单元格进行格式化以显示特定的样式和效果。可以使用org.apache.poi.ss.usermodel包中的类来设置单元格的样式。

import org.apache.poi.ss.usermodel.*;

public class CellFormatting {
    public static void main(String[] args) throws Exception {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");
        Row row = sheet.createRow(0);
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello World!");

        CellStyle style = workbook.createCellStyle();
        Font font = workbook.createFont();
        font.setBold(true);
        style.setFont(font);

        cell.setCellStyle(style);

        FileOutputStream outputStream = new FileOutputStream("formatted.xlsx");
        workbook.write(outputStream);
        workbook.close();
        outputStream.close();
    }
}

以上代码会创建一个包含一个单元格的Excel文件,在该单元格中显示"Hello World!"。同时,还应用了一个粗体字体样式来设置单元格的样式,将其保存为"formatted.xlsx"。

总结

Apache POI是一个强大的Java库,用于读写Microsoft Office格式文件。本篇博客介绍了如何使用Apache POI进行数据读写和格式化。希望本篇博客对您有所帮助!


全部评论: 0

    我有话说: