要在Java中导出一对多的数据到Excel,可以使用Apache POI库来实现。以下是一个简单的示例代码:

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.HashMap;
import java.util.List;
import java.util.Map;

public class ExcelExport {
    public static void main(String[] args) {
        List<Map<String, List<String>>> data = new ArrayList<>();

        // 添加一对多的数据
        Map<String, List<String>> map1 = new HashMap<>();
        List<String> values1 = new ArrayList<>();
        values1.add("Value 1");
        values1.add("Value 2");
        values1.add("Value 3");
        map1.put("Key 1", values1);
        data.add(map1);

        Map<String, List<String>> map2 = new HashMap<>();
        List<String> values2 = new ArrayList<>();
        values2.add("Value 4");
        values2.add("Value 5");
        values2.add("Value 6");
        map2.put("Key 2", values2);
        data.add(map2);

        // 创建工作簿和工作表
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

        int rowIndex = 0;
        for (Map<String, List<String>> map : data) {
            for (Map.Entry<String, List<String>> entry : map.entrySet()) {
                String key = entry.getKey();
                List<String> values = entry.getValue();

                // 写入键值对
                Row row = sheet.createRow(rowIndex++);
                Cell keyCell = row.createCell(0);
                keyCell.setCellValue(key);

                // 写入多个值
                for (int i = 0; i < values.size(); i++) {
                    Cell valueCell = row.createCell(i + 1);
                    valueCell.setCellValue(values.get(i));
                }
            }
        }

        try {
            // 导出Excel文件
            FileOutputStream fileOutputStream = new FileOutputStream("output.xlsx");
            workbook.write(fileOutputStream);
            fileOutputStream.close();
            workbook.close();
            System.out.println("Excel导出成功。");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这个示例代码会创建一个包含一对多数据的列表,并将其导出到名为output.xlsx的Excel文件中。每个一对多的数据会在Excel的一行中显示,键值对在第一列,多个值在接下来的列中。

你可以根据实际需要修改数据的结构以及导出的Excel文件的名称和路径

java Excel导出 一对多的数据

原文地址: http://www.cveoy.top/t/topic/hHps 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录