java 和excel 导出excel

在Java中,我们经常需要将数据导出到Excel中以便进行进一步的处理或可视化展示。幸运的是,Java中有很多库可以用来处理Excel文件,比如Apache POI。

// 导出Excel文件示例public static void exportToExcel(List<
    Person>
 personList) throws IOException {
    Workbook workbook = new XSSFWorkbook();
    Sheet sheet = workbook.createSheet("Person List");
    int rowNum = 0;
    Row headerRow = sheet.createRow(rowNum++);
    headerRow.createCell(0).setCellValue("Name");
    headerRow.createCell(1).setCellValue("Age");
    headerRow.createCell(2).setCellValue("Gender");
for (Person person : personList) {
    Row row = sheet.createRow(rowNum++);
    row.createCell(0).setCellValue(person.getName());
    row.createCell(1).setCellValue(person.getAge());
    row.createCell(2).setCellValue(person.getGender());
}
    FileOutputStream outputStream = new FileOutputStream("person_list.xlsx");
    workbook.write(outputStream);
    outputStream.close();
}
    

如上所示,我们创建了一个名为“Person List”的表格,并将人员列表数据导出到其中。表格的第一行是表头,其中包含了每一列的名称。然后我们遍历人员列表,将每个人的数据逐一写入每一行中。

除了导出数据,我们还可以通过Java将Excel文件中的数据读入到程序中进行处理。下面是一个简单的示例:

// 读取Excel文件示例public static List<
    Person>
 readFromExcel(String filePath) throws IOException {
    Workbook workbook = new XSSFWorkbook(new FileInputStream(filePath));
    Sheet sheet = workbook.getSheet("Person List");
    List<
    Person>
     personList = new ArrayList<
    >
    ();
    int rowNum = 1;
    while (rowNum <
= sheet.getLastRowNum()) {
    Row row = sheet.getRow(rowNum++);
    Person person = new Person();
    person.setName(row.getCell(0).getStringCellValue());
    person.setAge((int) row.getCell(1).getNumericCellValue());
    person.setGender(row.getCell(2).getStringCellValue());
    personList.add(person);
}
    workbook.close();
    return personList;
}
    

以上代码片段读取名为“Person List”的表格,并将其转换为一个Person对象列表。这里假设人员列表的第一行是表头,而第二行开始才是人员数据。

总之,Java和Excel之间的相互转换非常方便。无论是导出数据还是读取数据,只需要使用适当的库和API,即可完成相应的操作。