Excel エクスポートを実装する前に、次のツールと環境を準備する必要があります:
1.JDK 環境
3.Apache POI library
Apache POI は、Excel、Word、PowerPoint ファイルなどの Microsoft Office 形式のファイルの読み書きに使用できる Java ライブラリです。 Apache POI ライブラリをプロジェクトに導入する必要があります。
3.Excel テンプレート
Excel テンプレートとは、テーブルの列名、行の高さ、フォント、色など、エクスポートする Excel ファイルのスタイルと形式を指します。 Excel でテンプレートを作成し、そのテンプレートにデータを入力できます。これにより、エクスポートされた Excel ファイルの形式とスタイルの一貫性が保証されます。
1. Excel ファイルの作成
まず、Java で Excel ファイルを作成する必要があります。 Excel ファイルは、Apache POI ライブラリの Workbook クラスを使用して作成できます。 Workbook クラスには、HSSFWorkbook と XSSFWorkbook の 2 つの実装クラスがあります。 HSSFWorkbook は .xls 形式の Excel ファイルを作成するために使用され、XSSFWorkbook は .xlsx 形式の Excel ファイルを作成するために使用されます。ニーズに応じて適切な実装クラスを選択できます。
Excel ファイルを作成するコードは次のとおりです:
// 创建工作簿 Workbook workbook = new HSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1");
2. テーブル データを入力します
次に、テーブルにデータを入力する必要があります。 Excel テーブルは、Apache POI ライブラリの Row クラスと Cell クラスを使用して操作できます。 Row はテーブル内の行を表し、Cell はテーブル内のセルを表します。最初にヘッダーを作成してから、テーブルにデータを入力できます。
次はテーブル データを埋めるためのコードです:
// 创建表头行 Row headerRow = sheet.createRow(0); // 创建表头单元格 Cell headerCell1 = headerRow.createCell(0); headerCell1.setCellValue("姓名"); Cell headerCell2 = headerRow.createCell(1); headerCell2.setCellValue("年龄"); // 填充数据 List<User> userList = getUserList(); for (int i = 0; i < userList.size(); i++) { User user = userList.get(i); Row dataRow = sheet.createRow(i + 1); Cell dataCell1 = dataRow.createCell(0); dataCell1.setCellValue(user.getName()); Cell dataCell2 = dataRow.createCell(1); dataCell2.setCellValue(user.getAge()); }
3. セルの結合
テーブル内のいくつかのセルを結合する必要がある場合は、Apache を使用できます。 POI ライブラリ CellRangeAddress クラスが実装されています。 CellRangeAddress は、開始行、終了行、開始列、終了列を含む、セルの結合された領域を表します。 CellRangeAddress オブジェクトを作成し、それをテーブル内のセルに適用できます。
以下はセルを結合するコードです:
// 合并单元格 CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1); sheet.addMergedRegion(region);
4. Excel ファイルのエクスポート
最後に、生成された Excel ファイルをローカルまたはサーバーにエクスポートする必要があります。 Excel ファイルは、Java の FileOutputStream クラスを使用してディスクに出力できます。
Excel ファイルをエクスポートするコードは次のとおりです:
// 导出Excel文件 File file = new File("user.xls"); FileOutputStream fos = new FileOutputStream(file); workbook.write(fos); fos.close();
public static void exportExcel() throws Exception { // 创建工作簿 Workbook workbook = new HSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 创建表头行 Row headerRow = sheet.createRow(0); // 创建表头单元格 Cell headerCell1 = headerRow.createCell(0); headerCell1.setCellValue("姓名"); Cell headerCell2 = headerRow.createCell(1); headerCell2.setCellValue("年龄"); // 填充数据 List<User> userList = getUserList(); for (int i = 0; i < userList.size(); i++) { User user = userList.get(i); Row dataRow = sheet.createRow(i + 1); Cell dataCell1 = dataRow.createCell(0); dataCell1.setCellValue(user.getName()); Cell dataCell2 = dataRow.createCell(1); dataCell2.setCellValue(user.getAge()); } // 合并单元格 CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1); sheet.addMergedRegion(region); // 导出Excel文件 File file = new File("user.xls"); FileOutputStream fos = new FileOutputStream(file); workbook.write(fos); fos.close(); } public static List<User> getUserList() { List<User> userList = new ArrayList<>(); userList.add(new User("张三", 20)); userList.add(new User("李四", 25)); userList.add(new User("王五", 30)); return userList; } public static class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
以上がJava で Excel セルをエクスポートおよび結合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。