java中怎么让导入的excle表中每一条数据对应文件夹中对应的图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么让导入的excle表中每一条数据对应文件夹中对应的图片相关的知识,希望对你有一定的参考价值。

就是我现在要导入excle里面的数据进行批量添加,比如这种的,然后呢这里面的每一条数据都对应有几张图片,就是这种,文件夹里面的图片,对应excle表里的每条数据,现在的问题是 我将excle里面的数据批量添加到数据库里时怎么可以对应的取到这个文件里对应的几张图片呢, 图片名称前面与excle里面的商品款号是一致得,

保存数据时,连同图片路径一并保存在数据库中即可 参考技术A 你的应该是WEB工程吧。
用户选择本地文件以后提交后台的上传,后台首先将用户上传的文件获取到,然后通过POI组件对excel进行读取,将每一行数据转换成为对应的Java实体List,然后将List导入数据库。POI组件是APACHE的一个开源项目,你可以到他们的官网下载到,具体POI的使用方法官方网站和很多技术网站都有介绍。追问

大兄弟, 但是我怎么能将图片也一并对应了呢?

java怎么将excel中string类型在导入到数据库时转换成表中对应的id

在将excel导入过程中,要导入的数据库中的表的字段是与其他表相关联的id,excel中是文字形式,到导入时将文字与那张关联的表相对应并取出id放入要导入的表中,请问怎么实现

首先你得解析excle,再封装实体,赋值对应的字段,存入数据库,类似下面的这个:

public static void readExcel(String filePath)
Products products = new Products();
SqlSession sqlSession = MybatisSqlSessionFactory.getSession();
    ProductsMapper productsMapper =  sqlSession.getMapper(ProductsMapper.class);
Map<Integer, String> map1 = FileUtil.readfile(filePath, null);
    for(int i=0 ; i < map1.size(); i++) 
    //获取工作表
    Workbook workbook = ExcelUtil.reWorkbook(map1.get(i));
    //获取sheet个数
    int shNum = ExcelUtil.reExcelSheet(workbook);
    for (int num = 0; num < shNum; num++) 
    //获取行数
    int rowNum = ExcelUtil.reExcelSheetRowNum(workbook, num);
    if(rowNum != 0)
   
    for (int rnum = 0; rnum <= rowNum; rnum++) 
    //获取列数
    int cellNum = ExcelUtil.reExcelSheetCellNum(workbook, num, rnum);
    if(cellNum != 0)
   
    String value = ExcelUtil.reExcelValue(workbook, num, rnum, 0, false);
    products.setProductcode(value);
    products.setActivestatus("1");
    int code = productsMapper.updateByProductCode(products);
    sqlSession.commit();
    if(code != 0)
   
    logger.info("读取Excel的行数为,更新数据条数为",rnum,code);
   
   
   
   
   
    logger.info("读取Excel完成");
   

参考技术A 问题描述的有点不清楚。你EXCEL中是什么样的数据?表的ID,那么直接读取就好了啊,跟关联表有什么关系。追问

就是大表中比如说有个部门这个字段,而各个部门存在部门这个表中,大表添加时取的是部门表的id来显示名称,而excel表中也有部门这个字段,但是是文字,需要与部门表的部门对应并取出id,在导入时存入大表中

追答

简单啊。你把部门表的数据取出来,循环一下,存放到一个Map中去,文字(也就是部门名称)作为一个key,然后部门id作为value。
然后再读取EXCEL的时候,把读取到的部门名称,在Map中取一下不就行了。前提肯定是EXCEL中的名称跟数据库中的名字完全一致。

追问

能不能大概写一下代码,不是很会

追答

额,这个不太好写啊。我写个大概吧。

// 导入数据
public void  importExcel()
  // 获取部门(假如你的部门类叫Dept)
  List<Dept> deptList = ......;
  Map<String,String> deptMap = new HashMap<String,String>();
  for(Dept d : deptList)
    deptMap.put(d.getDeptName,d.getDeptId());
  
  
  // 读取EXCEL。。。略
  // 读取部门cell....
  String deptNameCell = 。。。。;
  String deptId = deptMap.get(deptNameCell); 
  

就这样吧,我写的越多,你会的就越少。

本回答被提问者采纳

以上是关于java中怎么让导入的excle表中每一条数据对应文件夹中对应的图片的主要内容,如果未能解决你的问题,请参考以下文章

jeesite怎么往字典表里导入excl

如何把数据库里的数据导出到EXcl表中

excl数据怎么导入到MongoDB中,或者怎样将excl处理在导入到数据库中,数据量有4万条

jsp 接收用户上传的excel,先对excle的数据进行筛选,再发到控制端该怎么做,求指导

如何找出 Redshift 表中每一列的大小?

导入excle ,并处理数据实现文字和图片相对应