Java Servlet 导入Excel实现

1、导入Excel 模板
在这里插入图片描述

**2、按模板的格式 进行数据导入直接存储数据库**

**Servlet 方法中 进行导入功能实现:**
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   

		(1)、前端调用后端接口传参,编写代码上传Excel 附件
		// 创建json 对象
		JSONObject returnJson = new JSONObject();
			// 创建map对象
			Map<String, String> resultMap = null;
			// 创建file对象
			String filePath = null;
			// 创建excel book对象
			Workbook workbook = null;
try {
   
		// 调用文件上传工具类,返回文件路径
		String savePath = this.getClass().getClassLoader().getResource("/").getPath(); // 上传文件的保存目录
		String tempPath = this.getClass().getClassLoader().getResource("/").getPath(); // 上传时生成的临时文件保存目录
		resultMap = FileUtil.upload(savePath, tempPath, req); // 实现map对象
		
		/* 1. 判断文件是否上传 */
				filePath =  resultMap.get("arg_req_file");
				if (null == filePath) {
   
					throw new ExceptionUtils.CheckException("未上传文件");
				}
				// 2、 判断文件格式
				File file = new File(filePath);
				InputStream in = FileUtils.openInputStream(file);
				workbook = checkFileValid(file, in);

**// 4、 通过需要验证的参数 先查询数据是否已经导入**
			String queryExistSql = "SELECT develop_plan_id,version_upload FROM 表名 WHERE year = '"
					+ argThisYear + "' AND ou_id = '" + argOuId + "';";
			JSONObject transResultExist = this.queryDb(sqlSelectUrl, queryExistSql);
			int rowCount = Integer.valueOf(transResultExist.getString("RowCount"));
			// 如果 数据存在进行对存在的数据进行更新,不存在 直接进行插入
			if (0 != rowCount) {
   
				if (transResultExist.has("DataRows")) {
   
					// 查询 dataRows 获取数据值
					String Query = transResultExist.get("DataRows").toString();
					JSONArray jsonQueryNameArray = new JSONArray(Query);
					String developPlanId = jsonQueryNameArray.getJSONObject(0).getString("develop_plan_id");
					String version = jsonQueryNameArray.getJSONObject(1).getString("version_upload");
					Integer versionNum = Integer.parseInt(version)+1;
					
**// 通过其他参数验证数据已存在,并把之前数据 更改状态变为历史数据 通过字段 is_new(0历史、1在用)**
					ArrayList<String> operateList = new ArrayList<String>();
					operateList.add("SET SQL_SAFE_UPDATES = 0;");
					operateList.add("UPDATE 表名 set is_new = '0' " + " WHERE year = '" + argThisYear
							+ "' AND ou_id = '" + argOuId + "';");
					JSONObject oprateDBRet = operateDb(sqlTransUrl, operateList, mapWebinterpData);
					if ("1".equals(CommonUtils.getStrFromJsonobjet(oprateDBRet,
							ConstantUtility.StandardWebConstant.KEY_RETCODE))) {
   
						
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值