java 读取excel文件转换成json格式的实例代码

作者:biubiukey 时间:2023-09-11 13:07:28 

需要读取excel数据转换成json数据,写了个测试功能,转换正常:

JSON转换:org.json.jar

  测试类:  importFile.java:


package com.siemens.util;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONException;
import org.json.JSONObject;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
//import com.siemens.entity.master;
//import com.siemens.service.masterService;
//import com.siemens.serviceImpl.masterServiceImpl;
//import com.siemens.serviceImpl.webServiceImpl;
public class importFile {
 public static void main(String[] args) throws JSONException{
//   master masters = new master();
//   ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//   masterService ms = (masterService)ac.getBean("masterservice");
    Workbook wb =null;
     Sheet sheet = null;
     Row row = null;
     String cellData = null;
     //文件路径,
     String filePath = "f:/haoxy/Worktable222.xls";
     wb =EXCELBean.readExcel(filePath);
     if(wb != null){
       //用来存放表中数据
       List<JSONObject> listMap = new ArrayList<JSONObject>();
       //获取第一个sheet
       sheet = wb.getSheetAt(0);
       //获取最大行数
       int rownum = sheet.getPhysicalNumberOfRows();
       //获取第一行
       row = sheet.getRow(0);
       //获取最大列数
       int colnum = row.getPhysicalNumberOfCells();
       //这里创建json对象,实测用map的话,json数据会有问题  
       JSONObject jsonMap = new JSONObject();
       //循环行
       for (int i = 1; i < rownum; i++) {
         row = sheet.getRow(i);
         if(row !=null){
           //创建list对象接收读出的excel数据
           List<String> list = new ArrayList<String>();
           //循环列
           for (int j=0;j<colnum;j++){
             cellData = (String) EXCELBean.getCellFormatValue(row.getCell(j));
             list.add(cellData);
           }
           //System.out.println(list.get(59));
             //下面具体是本人对数据按需求进行格式处理   ---创建json对象会报异常,捕捉一下。
             JSONObject jsonObject2 = new JSONObject();
               jsonObject2.put("skvDorCode",list.get(0));
               jsonObject2.put("description", list.get(1));
               jsonObject2.put("discipline", list.get(2));
               jsonObject2.put("prefabricatedSkids", list.get(3));
               jsonObject2.put("onRack", list.get(4));
               jsonObject2.put("offRack", list.get(5));
               jsonObject2.put("yard", list.get(6));  
               jsonObject2.put("hsrg", list.get(7));
               JSONObject jsonPptData = new JSONObject();
               jsonPptData.put("SC FF",list.get(8));
               jsonPptData.put("CC SS CT",list.get(9));
               jsonPptData.put("CC SS OCC",list.get(10));
               jsonPptData.put("CC SS ACC",list.get(11));
               jsonPptData.put("CC MS CT",list.get(12));
               jsonPptData.put("CC MS OCC",list.get(13));
               jsonPptData.put("CC MS ACC",list.get(14));
               //turnkey
               JSONObject jsonTurnkey = new JSONObject();
               jsonTurnkey.put("plantDesign", list.get(26));
               jsonTurnkey.put("basicDesign", list.get(27));
               jsonTurnkey.put("detailDesign", list.get(28));
               jsonTurnkey.put("supplier", list.get(29));
               jsonTurnkey.put("errection", list.get(30));
               jsonTurnkey.put("commissioning", list.get(31));
               jsonTurnkey.put("blackBox", list.get(32));
               jsonTurnkey.put("optionalScope", list.get(33));
               jsonTurnkey.put("remark", list.get(34));
               jsonTurnkey.put("internalRemark", list.get(35));
               jsonTurnkey.put("revision", list.get(36));
               //PowerCore
               JSONObject jsonPowerCore = new JSONObject();
               jsonPowerCore.put("plantDesign", list.get(37));
               jsonPowerCore.put("basicDesign", list.get(38));
               jsonPowerCore.put("detailDesign", list.get(39));
               jsonPowerCore.put("supplier", list.get(40));
               jsonPowerCore.put("errection", list.get(41));
               jsonPowerCore.put("commissioning", list.get(42));
               jsonPowerCore.put("blackBox", list.get(43));
               jsonPowerCore.put("optionalScope", list.get(44));
               jsonPowerCore.put("remark", list.get(45));
               jsonPowerCore.put("internalRemark", list.get(46));
               jsonPowerCore.put("revision", list.get(47));
               //PowerIsland
               JSONObject jsonPowerIsland = new JSONObject();
               jsonPowerIsland.put("plantDesign", list.get(48));
               jsonPowerIsland.put("basicDesign", list.get(49));
               jsonPowerIsland.put("detailDesign", list.get(50));
               jsonPowerIsland.put("supplier", list.get(51));
               jsonPowerIsland.put("errection", list.get(52));
               jsonPowerIsland.put("commissioning", list.get(53));
               jsonPowerIsland.put("blackBox", list.get(54));
               jsonPowerIsland.put("optionalScope", list.get(55));
               jsonPowerIsland.put("remark", list.get(56));
               jsonPowerIsland.put("internalRemark", list.get(57));
               jsonPowerIsland.put("revision", list.get(58));
               //创建jsonBmt对象,进一步把以上对象嵌套
               JSONObject jsonBmt = new JSONObject();
               jsonBmt.put("Turnkey", jsonTurnkey);
               jsonBmt.put("PowerCore", jsonPowerCore);
               jsonBmt.put("PowerIsland", jsonPowerIsland);
               //把以上几个嵌套入第一层对象中
               jsonObject2.put("powerPlantTypes",jsonPptData);
               jsonObject2.put("businessMixTypes",jsonBmt);
               jsonObject2.put("treeDepth",Integer.parseInt(list.get(59).substring(0,list.get(59).indexOf('.'))));
               if(Integer.parseInt(list.get(59).substring(0,list.get(59).indexOf('.')))<=2){
                 List<String> list3 = new ArrayList<String>();
                 list3.add("non-empty-placeholder");
                 jsonObject2.put("children",list3);
               }
               listMap.add(jsonObject2);              
         }else{
           break;
         }        
       }// end for row
           //最外层加个key-gridData
           jsonMap.put("gridData", listMap);
           System.out.println(jsonMap);      
     }      
 }  
}

读取excel 工具类,看到网友的读取方法引用一下:

EXCELBean.java:


package com.siemens.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class EXCELBean {
 //读取excel
 public static Workbook readExcel(String filePath){
   Workbook wb = null;
   if(filePath==null){
     return null;
   }
   String extString = filePath.substring(filePath.lastIndexOf("."));
   InputStream is = null;
   try {
     is = new FileInputStream(filePath);
     if(".xls".equals(extString)){
       return wb = new HSSFWorkbook(is);
     }else if(".xlsx".equals(extString)){
       return wb = new XSSFWorkbook(is);
     }else{
       return wb = null;
     }
   } catch (FileNotFoundException e) {
     e.printStackTrace();
   } catch (IOException e) {
     e.printStackTrace();
   }
   return wb;
 }
 public static Object getCellFormatValue(Cell cell){
   Object cellValue = null;
   if(cell!=null){
     //判断cell类型
     switch(cell.getCellType()){
     case Cell.CELL_TYPE_NUMERIC:{
       cellValue = String.valueOf(cell.getNumericCellValue());
       break;
     }
     case Cell.CELL_TYPE_FORMULA:{
       //判断cell是否为日期格式
       if(DateUtil.isCellDateFormatted(cell)){
         //转换为日期格式YYYY-mm-dd
         cellValue = cell.getDateCellValue();
       }else{
         //数字
         cellValue = String.valueOf(cell.getNumericCellValue());
       }
       break;
     }
     case Cell.CELL_TYPE_STRING:{
       cellValue = cell.getRichStringCellValue().getString();
       break;
     }
     default:
       cellValue = "";
     }
   }else{
     cellValue = "";
   }
   return cellValue;
 }
}

总结

以上所述是小编给大家介绍的java 读取excel文件转换成json格式 ,希望对大家有所帮助

来源:https://blog.csdn.net/qq_27985863/article/details/79917636

标签:java,json,excel
0
投稿

猜你喜欢

  • Kotlin可见性修饰符详解

    2023-02-28 22:36:18
  • Fastjson 常用API介绍及下载地址(推荐)

    2023-03-18 23:48:47
  • Flutter实现手势识别功能详解方法

    2022-12-21 15:41:41
  • Android 创建与解析XML(四)——详解Pull方式

    2023-06-03 07:10:23
  • Android RxJava创建操作符Interval

    2023-08-14 01:26:24
  • while和for可以相互转换的例子分享

    2023-08-23 02:17:46
  • Android LayoutInflater加载布局详解及实例代码

    2021-09-29 04:21:01
  • C#中标准的IDispose模式代码详解

    2022-03-27 01:40:05
  • C语言安全编码之数组索引位的合法范围

    2021-12-08 06:09:51
  • 浅谈Android开发中项目的文件结构及规范化部署建议

    2022-05-13 12:47:37
  • 浅谈Android性能优化之内存优化

    2023-08-19 04:36:43
  • 如何使用Spring AOP预处理Controller的参数

    2022-09-11 10:01:56
  • C# 7.2中结构体性能问题的解决方案

    2022-08-12 23:04:26
  • Java聊天室之使用Socket实现通信功能

    2022-03-08 09:46:27
  • C# WinForm中禁止改变窗口大小的方法

    2022-03-03 21:42:09
  • java实现消息队列的两种方式(小结)

    2022-07-09 08:12:13
  • Android APK反编译图文教程

    2022-02-04 01:46:46
  • Java如何在沙箱环境中测试支付宝支付接口

    2023-11-02 14:55:15
  • Unity实现10天签到系统

    2022-07-11 23:40:01
  • Android简易音乐播放器实现代码

    2021-12-22 23:26:53
  • asp之家 软件编程 m.aspxhome.com