首页 > 其他分享 >Excel导入操作,poi

Excel导入操作,poi

时间:2022-09-05 08:55:33浏览次数:35  
标签:liststr Excel param entity 导入 lsjList jwtUserObject poi new

导入操作,仅供参考,具体情况具体而论

  @Override
  public ReturnObject inforImport(LogySbjsJdsbqxxxParts entity, HttpServletRequest req, MultipartFile file)
  		throws IOException {
  	ReturnObject returnObject = new ReturnObject();
  	List<LogySbjsJdsbqxxxAccount> lsjList = new ArrayList<LogySbjsJdsbqxxxAccount>();
  	JwtUserObject jwtUserObject = JwtUtil.getJwtUserObj(req.getHeader("Authorization"));
  	// 创建一个excel文件
  	HSSFWorkbook workbook = null;
  	workbook = new HSSFWorkbook(file.getInputStream()); // 获取文件
  	HSSFSheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
  	int lastRowNum = sheet.getLastRowNum();
  	// 获取数据
  	for (int i = 2; i <= lastRowNum; i++) {
  		HSSFRow row = sheet.getRow(i);
  		if (row != null) {
  			List<String> liststr = new ArrayList<>();
  			String value = null;
  			for (Cell cell : row) {
  				if (cell != null && cell.getCellType() != CellType.BLANK) {
  					cell.setCellType(CellType.STRING);
  					value = cell.getStringCellValue(); // 读取数据
  					liststr.add(value);
  				} else {
  					value = "";
  					liststr.add(value);
  				}
  			}
  			if (liststr.size() > 0) {
  				lsjList = extracted(entity, lsjList, jwtUserObject, i, liststr);
  			}
  		}
  	}
  	logySbjsJdsbqxxxAccountDao.saveAll(lsjList);
  	returnObject.setRemsg("上传成功");
  	return returnObject;
  }
	/**
	 * 构造数据 @Title: extracted @Description: TODO(这里用一句话描述这个方法的作用) @param: @param
	 * entity @param: @param lsjList 定义一个List @param: @param
	 * jwtUserObject @param: @param i 行号 @param: @param liststr 解析出来的一行数据 @return:
	 * void @throws
	 */
	private List<LogySbjsJdsbqxxxAccount> extracted(LogySbjsJdsbqxxxParts entity, List<LogySbjsJdsbqxxxAccount> lsjList,
			JwtUserObject jwtUserObject, int i, List<String> liststr) {

		entity.setITEMCODE(jwtUserObject.getITEMCODE());
		entity.setQxxxModeId(entity.getQxxxModeId());
		Example<LogySbjsJdsbqxxxParts> example = Example.of(entity);
		// 查询所有并组装
		List<LogySbjsJdsbqxxxParts> list = logySbjsJdsbqxxxPartsDao.findAll(example);
		// 排序输出
		List<LogySbjsJdsbqxxxParts> collectList = list.stream()
		.sorted(Comparator.comparing(LogySbjsJdsbqxxxParts::getPartsCode)
		.thenComparing(LogySbjsJdsbqxxxParts::getSort)).collect(Collectors.toList());
		for (int j = 0; j < liststr.size(); j++) {
			String id = UUID.randomUUID().toString().replaceAll("-", ""); // id
			String str = liststr.get(j);
			if(collectList.get(j).getPartsName().contains("日期")) {  //处理日期为数字
				Calendar calendar = new GregorianCalendar(1900, 0, -1);
				Date d = calendar.getTime();
				Date datastr = DateUtils.addDays(d, Integer.valueOf(str));
				SimpleDateFormat dataformatter  = new SimpleDateFormat( "yyyy-MM-dd");
				str = dataformatter.format(datastr);
			}
			LogySbjsJdsbqxxxAccount lsj = new LogySbjsJdsbqxxxAccount(id, entity.getITEMCODE(),
					jwtUserObject.getItemName(), entity.getQxxxModeId(), collectList.get(j).getQxxxPartsId(),
					collectList.get(j).getPartsCode(), collectList.get(j).getPartsName(), str, new Date(),
					jwtUserObject.getUSERID(), jwtUserObject.getUSERNAME(), 0, i - 1);
			// 添加到集合中
			lsjList.add(lsj);
		}
		return lsjList;

	}

标签:liststr,Excel,param,entity,导入,lsjList,jwtUserObject,poi,new
From: https://www.cnblogs.com/hhs-5120/p/16656840.html

相关文章

  • Python操作Excel
    首先我们需要安装名为xlrd和xlwt这两个库,其中xlrd是读excel,xlwt是写excel的库pipinstallxlrdpipinstallxlwt然后根据以下示例进行操作读文件:importxlrd#打开一个......
  • Python操作PowerPoint
    首先我们需要安装名为python-pptx 的三方库pipinstallpython-pptx然后根据以下示例进行操作importpptxfrompptximportPresentation#创建幻灯片对象saslspres......
  • vue纯前端导入导出excel
    vue纯前端导入导出excel我们有时会遇到在前端实现导入/导出excel的需求这里直接推荐两个现成的vue导入导出excel的库,他们是基于xlsx封装的https://www.npmjs.com/packa......
  • 第三方库openPyxl读取excel文件
    importopenpyxlfromopenpyxl.worksheet.worksheetimportWorksheetdefopenpyxl_read():#1、打开文件workbook=openpyxl.load_workbook("cases.xlsx")......
  • Oracle数据库导入、导出dmp文件
    1、数据库导出dmp文件exphdrg/[email protected]:1521/orclfile=D:\hdrg.dmp说明:exp用户名/密码@数据库名file=E:\file.dmptables=(要导出的表名称,以逗号隔开)2、o......
  • 什么是 CALayer 的 AnchorPoint?
    什么是CALayer的AnchorPoint?如果您想在该层上进行任何类型的几何变换,CALayer的AnchorPoint是一个重要的属性。读官方文档。根据Apple的说法:anchorPoint“定......
  • Java实现Excel导入导出操作详解
    前言本次封装是基于POI的二次开发,最终使用只需要调用一个工具类中的方法,就能满足业务中绝大部门的导入和导出需求。1.功能测试1.1测试准备在做测试前,我们需要將【2......
  • Python实现XMind测试用例快速转Excel用例
    转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.top/c2d10f21.html你好,我是测试蔡坨坨。今天分享一个Python编写的小工具,实现XMind测试用例转Excel用例。前言XMi......
  • Python操作Excel表格
    转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.top/b0277e1c.html你好,我是测试蔡坨坨。上期我们分享了一个Python编写的小工具——「Python实现XMind测试用例......
  • PHP---导入Excel数据
    最近在开发一个系统,需要做大量的数据处理,特别是导入数据,使用的框架thinkphp6,就目前来说,下面介绍一种逐行添加的方法:注意:以下这种方式,仅提供开发思路,读取一行,添加一行。但......