小影~ 2023-08-05 12:27 采纳率: 33.3%
浏览 11
已结题

Excel动态导入一对多

Excel结构如下:

img

需求:组装成如下数据结构

img

场景:
1.列数不固定
2.列顺序不固定
3.有的参数值可能为空

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-05 14:44
    关注

    【以下回答由 GPT 生成】

    解决方案:

    对于Java编写程序来实现动态导入Excel表格的需求,可以使用Apache POI库来处理Excel文件。下面是使用Apache POI库实现的步骤:

    1. 引入Apache POI的依赖: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency>

    2. 使用Apache POI读取Excel文件数据:

    ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook;

    // 读取Excel文件 Workbook workbook = new XSSFWorkbook(new FileInputStream("path/to/excel/file.xlsx"));

    // 读取工作表 Sheet sheet = workbook.getSheetAt(0);

    // 遍历行数据 for (Row row : sheet) { // 创建数据结构对象 (例如: Map) Map data = new HashMap<>();

       // 遍历每个单元格
       for (Cell cell : row) {
           // 获取列索引和列名 (这可以根据实际情况来确定)
           int columnIndex = cell.getColumnIndex();
           String columnName = "column_" + columnIndex;
    
           // 获取单元格的值
           String cellValue = cell.getStringCellValue();
    
           // 将列名和单元格值存入数据结构对象
           data.put(columnName, cellValue);
       }
    
       // 将数据结构对象添加到数据集合中 (例如: List<Map<String, Object>>)
       dataList.add(data);
    

    }

    // 关闭Workbook workbook.close(); ```

    1. 根据需求对数据进行组装或处理。根据场景1和场景2,由于列数和列顺序不固定,可以使用动态的数据结构来存储数据,例如使用Map来表示每一行的数据,然后将所有行的数据存储在List>中。

    2. 根据场景3,可以针对数据中某些参数值为空的情况进行特殊处理,例如在组装数据时,判断参数值是否为空,并根据实际需求进行处理。

    以上就是使用Apache POI库来实现动态导入Excel表格的一种方法。希望对你有所帮助。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月18日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等