关于Excel表格导入问题·

导入Excel表格时,如何把表头一起导入(停送电信息)

img

如下代码:

img

你这个fori循环下标不是从1开始的吗,他把第一行表头给跳过了,你改成0

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7783919
  • 这篇博客你也可以参考下:将excel表格中的数据批量导入到数据库中
  • 除此之外, 这篇博客: 上传excel表格批量插入到数据库中的 需求-导入excel表格,把表格中的数据存到数据库中 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 这是我开发中遇到的困难之一,由于之前没有遇到过这种excel表格批量上传的需求,所以第一次碰到蒙了一下,转而之后就是兴奋,对未知知识的索取与分析问题的喜悦(都有)
    -----以上是我的废话

  • 您还可以看一下 吴开斌老师的Excel职场实操技能课程 零基础学习Excel表格制作课程中的 认识Excel与制作一个简单表格小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以利用easyexcel框架中的ExcelWriter对象实现导入Excel表格时同时导入表头的功能。首先,通过InputStream获取Excel文件流,然后使用EasyExcel.read()方法读取表格,同时设置WriteSheet传入表头的类,最后可以通过ExcelWriter.write()方法传入数据和表头信息,写入到输出流中。具体代码示例如下:

    /**
     * 导入Excel表格,并同时导入表头
     * @param inputStream Excel文件流
     * @param clazz 导入数据对应的实体类
     * @param <T> 泛型,对应实体类
     * @return 返回List<T>类型的数据集合,包括表头信息和其他数据
     */
    public static <T> List<T> importExcelWithHeader(InputStream inputStream, Class<T> clazz) {
        // 定义Excel监听器,从而获取表头信息
        AnalysisEventListener<T> listener = new AnalysisEventListener<T>() {
            private List<T> dataList = new ArrayList<>();
    
            @Override
            public void invoke(T data, AnalysisContext context) {
                dataList.add(data);
            }
    
            @Override
            public void doAfterAllAnalysed(AnalysisContext context) {}
    
            public List<T> getDataList() {
                return dataList;
            }
        };
    
        // 调用EasyExcel方法解析数据
        EasyExcel.read(inputStream, clazz, listener).sheet().doRead();
        return listener.getDataList();
    }
    
    /**
     * 写入Excel表格,并同时写入表头
     * @param outputStream 输出流,用于写入表格数据
     * @param clazz 数据对应的实体类
     * @param dataList 导出的数据集合
     * @param <T> 泛型,对应实体类
     */
    public static <T> void writeExcelWithHeader(OutputStream outputStream, Class<T> clazz, List<T> dataList) {
        // 使用EasyExcel创建Excel表格
        ExcelWriter excelWriter = EasyExcel.write(outputStream, clazz).build();
        WriteSheet writeSheet = EasyExcel.writerSheet().build();
    
        // 只有第一个写入的数据才会包含表头,将其作为第一条记录写入
        T firstData = dataList.get(0);
        excelWriter.write(Arrays.asList(firstData), writeSheet);
    
        // 从集合中移除表头信息
        dataList.remove(0);
    
        // 将数据集合写入Excel表格中
        excelWriter.write(dataList, writeSheet);
    
        // 关闭ExcelWriter,释放资源
        excelWriter.finish();
    }