JavaでPOIを使ってExcelデータをエクスポートする方法は何ですか?
JavaでExcelデータをエクスポートするには、POIライブラリを使用することができます。以下はExcelファイルにデータをエクスポートするサンプルコードです:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ExcelExporter {
public static void main(String[] args) {
// 创建数据列表
List<Person> personList = new ArrayList<>();
personList.add(new Person("John", 25));
personList.add(new Person("Jane", 30));
personList.add(new Person("David", 35));
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建表格
Sheet sheet = workbook.createSheet("Person Data");
// 创建表头
Row header = sheet.createRow(0);
header.createCell(0).setCellValue("Name");
header.createCell(1).setCellValue("Age");
// 创建数据行
int rowNum = 1;
for (Person person : personList) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(person.getName());
row.createCell(1).setCellValue(person.getAge());
}
// 调整列宽度
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
// 保存文件
try (FileOutputStream outputStream = new FileOutputStream("person_data.xlsx")) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Excel文件导出成功!");
}
// 定义数据模型
private static class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
}
この例では、XSSFWorkbookクラスを使用して新しいワークブックを作成し、「Person Data」という名前のシートを作成しました。createRow()メソッドを使用してヘッダーとデータ行を作成し、setCellValue()メソッドを使用してセルの値を設定しました。最後に、FileOutputStreamを使用してワークブックをファイルに書き込みました。
この例ではXSSFWorkbookクラスが使用されており、このことはエクセルファイルの出力が.xlsx形式であることを意味します。もし.xls形式のファイルを出力したい場合は、HSSFWorkbookクラスを使用してワークブックを作成してください。