把excel文件转成json格式

来源:互联网 发布:sql server怎么下载 编辑:程序博客网 时间:2024/06/05 05:16

有的时候发来数据的文件是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

原创粉丝点击