JAVA 使用poi技术,将表格中的一行数据看成一个对象,处理Excel表导入数据

需要导入POI.jar包,下载地址:https://download.csdn.net/download/qq_42694534/10736714
还有上传文件的两个commons-fileupload-1.3.3包、commons-io-2.6包,下载地址:
https://download.csdn.net/download/qq_42694534/10736792
JAVA 使用poi技术处理Excel表导入、导出的包,将其导入到项目的lib的目录下就可以啦,我这里用的是3.9的
在这里插入图片描述

/**
	 * 导入数据(用来处理用户上传的数据)
	 * @param request
	 * @param response
	 * @return
	 */
	private IModuleDao menuDao = new ModuleDaoImpl();
	private Module module = new Module();
	private ObjectMapper mapper = new ObjectMapper(); 
	public String add(HttpServletRequest request, HttpServletResponse response){
		boolean falg = true;
		try {
		// 3.设置参数工厂,临时存放上传文件.
		DiskFileItemFactory dfif = new DiskFileItemFactory();
		// 4.设置工厂临时文件的大小
		dfif.setSizeThreshold(1024 * 1024 * 3);
		// 5.设置临时文件存储的位置
		dfif.setRepository(new File(System.getProperty("java.io.tmpdir")));
		// 5创建上传对象
		ServletFileUpload fileUpload = new ServletFileUpload(dfif);
		// 6设置上传文件大小
		fileUpload.setFileSizeMax(1024 * 1024 * 50);
		// 7设置表单的大小
		fileUpload.setSizeMax(1024 * 1024 * 100);
		// 8设置表单字符
		fileUpload.setHeaderEncoding("utf-8");
		// 10获取上传文件
		List<FileItem> fileItems = fileUpload.parseRequest(request);
		FileItem fileItem = fileItems.get(0);
		/**
		 * 获取文件后缀
		 */
		String str = fileItem.getName().substring(fileItem.getName().lastIndexOf("."));
		if (str.equals(".xls") || str.equals(".xlsx")) {// 判断上传的文件是不是表格
			POIFSFileSystem pfs = new POIFSFileSystem(fileItem.getInputStream());
			HSSFWorkbook wb = new HSSFWorkbook(pfs);
			//获取工作薄
			HSSFSheet sheet=wb.getSheetAt(0);
			//声明行对象
			HSSFRow row=null;
			//通过循环获取每一行
			for(int i=0;sheet.getRow(i)!=null;i++){
			row=sheet.getRow(i);
			//循环获取一行的中列 
			//将表格中的一行数据看成一个对象,用List<String>去接收
			List<String> ls = new ArrayList<>();
			for(int j=0;row.getCell(j)!=null;j++){
					ls.add(row.getCell(j).toString());
			} 
			//然后一个个加入到module对象中去,在这里要注意一点哦,要做数据类型转换,
			//不然会有点小麻烦噢
			module.setId(String.valueOf((int)Math.ceil(Double.valueOf(ls.get(0)))));
			module.setPid((int)Math.ceil(Double.valueOf(ls.get(1))));
			module.setText(ls.get(2));
			if(ls.get(3).length()>0) { 
				module.setUrl(ls.get(3));
			}
			module.setSort((int)Math.ceil(Double.valueOf(ls.get(4))));
			//接着将一个个对象向Dao方法传人,并加入到数据库里去
			//这里的Dao呢,就自己写吧,我就不展示咯
			menuDao.add(module); 
			}
		} else {
			String jsonString = JSON.toJSONString("上传表格可否");
			print(jsonString, response);
		}}catch (Exception e) {
		falg=false;
		  throw new RuntimeException("上传失败了");
		}
		String jsonString = JSON.toJSONString(falg);
		try {
			print(jsonString, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值