把excel文件转成json格式

有的时候发来数据的文件是excel格式的,而又需要把它们转成json格式传递给服务端

主要分为:1.获取excel文件   2.获取文件的工作表sheet  3.获取指定单元格的数据 (该版本属于逻辑简单好理解的)4.获取的值转成json

主要使用的jar包的坐标:(我创建的是maven项目),而解析json的包就是 org.json


分步骤来是依次封装的几个方法:

第一步:获取excel文件和工作表sheet ,默认获取第一个sheet,也可以根据工作需要修改参数获取其他的sheet

    /*
	 * 该方法用于获取指定excel文件的工作表
	 */
	private static Sheet getSheet(String path) {
		File file = new File("Excel文件所在的位置");
		Workbook workbook = null;
		try {
			workbook = WorkbookFactory.create(file);
		} catch (Exception e) {
			e.printStackTrace();
		}
		Sheet sheet = workbook.getSheetAt(0);
		return sheet;
	}

第二步:获取指定单元格的数据,该方法中两个getRow()是因为我需要一次性获取同一列两个单元格的值,循环是为了可以一次性获取若干个列

    /*
	 * 该方法用于获取工作表中一定范围单元格的值
	 * 参数 start表示起始单元格所在位置,end表示结束单元格所在位置
	 */
	private static Map getValue(int start,int end) {
		Sheet sheet = getSheet("");
		Map map = new HashMap<>();
		for(int i=start;i<=end;i++){
			//获取标题最底行
			String a = sheet.getRow(3).getCell(i-1).getStringCellValue();
			//获取材料所在行
			String b = sheet.getRow(5).getCell(i-1).getStringCellValue();
			map.put(a,b);
		}
		return map;
	}
返回值格式是map格式,因为后续的转json操作是直接把map转成json格式

第三步:先创建一个空的json,按照业务需求依次put进相应的节点,因为是直接操作json数据,所以需要一个方法:

    /*
	 * 该方法用于把map数据转为json格式
	 */
	private static JSONObject MapToJson(Map map) {
		JSONObject jsonObject = new JSONObject(map);
		return jsonObject;
	}

新建和put节点可以这样:


在不同的节点put值时,我是这样做的,好理解。调用了上面提到的方法


最后可以打印下 j ,把结果放到json在线检测上看一下是不是正确


注意的点:

这是我设计的比较简单的,其中不包括 如:

合并单元格验证-------我是直接按照行列坐标读取值,比较死板

数据先装进Map再转成json--------我是一节一节的先转成json,再拼接组装,比较重复

……



LG

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LUNG108

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值