将导入的如图所示格式的城乡区划代码的excel文件整理成json格式的对象储存在js文件中:

var PROJECTDISTRICTDATA=[
    {
        "name": "鼓楼区",
        "departid": 320302000000,
        "type": "district",
        "street": [
            {
                "name": "黄楼街道",
                "departid": 320302001000,
                "type": "street",
                "village": [
                    {
                        "name": "华联社区居委会",
                        "departid": 320302001001,
                        "type": "village"
                    }
                ]
            }
        ]
    }
];

/**
*  由后台根据Excel内容生成Upload对象并放入List中,然后将最后结果传到前端再进行一次处理区分上下级
*/
js文件 upload: function () { var xuzhouJson = []; $.ajax({ url: 'comments!uploads.action', type: 'POST', success: function (dataStr) {if (!data) { alert("操作失败,请稍后再试"); return; }
       //对结果进行第一次循环处理,将第一级城区整理出来放入json对象xuzhouJson,顺序根据dataStr中出现的顺序 for(var n = 0 ; n < data.length;n ++){ if(data[n].type== "district"){
            //给城区json对象放一个street数组放街道 data[n].street = []; xuzhouJson.push(data[n]); } }
       //对结果进行第二次循环处理,将第二级街道整理到对应的城区对象中 for(var n = 0 ; n < data.length;n ++){ if(data[n].type== "street"){
            //找到对应的城区 for(var m = 0 ; m < xuzhouJson.length ; m ++){ if(xuzhouJson[m].type == "district" && xuzhouJson[m].departid.substr(0,6) == data[n].departid.substr(0,6)){ data[n].village = []; xuzhouJson[m].street.push(data[n]); } } } } for(var n = 0 ; n < data.length;n ++){ if(data[n].type== "village"){ for(var m = 0 ; m < xuzhouJson.length ; m ++){ if(xuzhouJson[m].type == "district" && xuzhouJson[m].departid.substr(0,6) == data[n].departid.substr(0,6)){ for(var k=0 ;k < xuzhouJson[m].street.length;k++){ if(xuzhouJson[m].street[k].type == "street" && xuzhouJson[m].street[k].departid.substr(0,9) == data[n].departid.substr(0,9)){ xuzhouJson[m].street[k].village.push(data[n]); } } } } } } } }); } java文件 public String uploads(){ jxl.Workbook readwb = null; try { //构建Workbook对象, 只读Workbook对象 //直接从本地文件创建Workbook InputStream instream = new FileInputStream("F:/xuzhou.xls"); readwb = Workbook.getWorkbook(instream); List<Upload> uploads = new ArrayList<>(); //Sheet的下标是从0开始 //获取第一张Sheet表 Sheet readsheet = readwb.getSheet(0); //获取Sheet表中所包含的总列数 int rsColumns = readsheet.getColumns(); //获取Sheet表中所包含的总行数 int rsRows = readsheet.getRows(); //获取指定单元格的对象引用 for (int i = 1; i < rsRows; i++) { Upload upload = new Upload(); upload.setName(readsheet.getCell(10, i).getContents()); upload.setDepartid(readsheet.getCell(0, i).getContents()+readsheet.getCell(1, i).getContents()+readsheet.getCell(2, i).getContents()+readsheet.getCell(3, i).getContents()+readsheet.getCell(4, i).getContents()); if(readsheet.getCell(2, i).getContents().equals("00")){ continue; }else if(readsheet.getCell(3, i).getContents().equals("000")){ upload.setType("district"); }else if(readsheet.getCell(4, i).getContents().equals("000")){ upload.setType("street"); }else if(!readsheet.getCell(4, i).getContents().equals("000")){ upload.setType("village"); } uploads.add(upload); } writeJsonStr(uploads); } catch (Exception e) { e.printStackTrace(); } finally { readwb.close(); } } public class Upload {
  //区划名称
  private String name;
  //区划代码
  private String departid;   //区划类型
  private String type; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDepartid() { return departid; } public void setDepartid(String departid) { this.departid = departid; } public String getType() { return type; } public void setType(String type) { this.type = type; } }

Excel 文件转 JSON格式对象的更多相关文章

  1. 把json格式对象转成可提交字符串格式,会过滤掉函数 {a: {b: 3}, b: [1], c: "d"} -> a.b=3&b[0]=1&c=d

    var json = { name: "任务名称" , scoreRule: "", score: "", // 如果规则表达式不为空,则默 ...

  2. json格式对象大括号中不能把键改为变量问题

    今天遇到了一个往json中写入变量的问题,下面代码是错误的写法 document.querySelector(".box").onclick = function(){ // 移动 ...

  3. 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据

    演示效果参考如下:XML转JSON 另一个搭配SQL实现:http://sheetjs.com/sexql/index.html 详细介绍: 1.首先需要导入js <script src=&qu ...

  4. Java 解析Excel文件为JSON

    Excel转Json的需求 反正我对SSM基本不会的情况下来到现在这家公司,都是90后,感觉很好.第二天就给我开发任务,就是把用户上传的Excel文件转成JSON返回给前台用于大屏的数据展示. 解决方 ...

  5. python读取excel数据为json格式(兼容xls\xlsx)

    做自动化时需要从excel读取数据: 本文实现将excel文件数据读取为json格式,方便自动化调用 读取xls文件 使用xlrd读取xls文件代码: import xlrd def read_xls ...

  6. Excel文件转为其他格式文件

    引用:Spire.XLS 是一个 Excel 文件的读写库,无需安装office,使用起来也挺方便的.Spire还有一些其他的库(Spire.Doc,Spire.Pdf……) 说明:Spire.XLS ...

  7. 下载zip格式文件(压缩Excel文件为zip格式)

    Mongodb配置文件参考这一篇:http://www.cnblogs.com/byteworld/p/5913061.html package util; import java.io.Buffer ...

  8. Creating Excel files with Python and XlsxWriter(通过 Python和XlsxWriter来创建Excel文件(xlsx格式))

    以下所有内容翻译至: https://xlsxwriter.readthedocs.io/ #----------------------------------------------------- ...

  9. node读取excel文件生成JSON

    当前的目录结构 excel的数据如下: node识别excel,先得安装  node-xlsx,用npm或yarn都可以 npm install  node-xlsx 或 yarn add node- ...

随机推荐

  1. Dynamics 365 for Team Members Description

    Dynamics 365 for Team Members, Business edition The Dynamics 365 for Team Members, Business edition ...

  2. 使用HttpWebRequest模拟登陆阿里巴巴(alibaba、httpwebrequest、login)

    前言 其实老喜欢取经,偶尔也得分享下.关于阿里巴巴国际站的登陆,过程有点复杂但是算不上难.一不小心少个东西倒也挺麻烦的. 主要是看下请求类HttpClient基本请求封装使用,AliClient模拟浏 ...

  3. Java构造器的深入理解

    [构造器与方法的深入理解] 构造器的深入理解 [博主]高瑞林 [博客地址]http://www.cnblogs.com/grl214 [博客地址]http://www.cnblogs.com/grl2 ...

  4. 解决 jQuery.UI.Resizable aspectRatio在init后无法重新设置

    一.背景  在jQuery1.9.x版本之前,存在aspectRatio在Resizable方法init之后,无法再次修改aspectRatio的boolean值. 二.解决方案 // 用于fix j ...

  5. bzoj1588: [HNOI2002]营业额统计 splay瞎写

    最近各种瞎写数论题,感觉需要回顾一下数据结构 写一发splay冷静一下(手速过慢,以后要多练练) 用splay是最直接的方法,但我感觉离散一波应该可以做出来(没仔细想过) 现在没有很追求代码优美,感觉 ...

  6. hadoop端口配置指南

    获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件有 ...

  7. shell -- yes or no

    read -p "Do you want to .... [Y/N]? " yn while true; do case $yn in [Yy]|[Yy][Ee][Ss] ) br ...

  8. Gpt转mbr

    1)Shift + F10 2)diskpart 3)list disk 4)select dist 0 5)clean 6)convert mbr [注]mbr常用于windows操作系统,而gpt ...

  9. (转)GBDT迭代决策树理解

    在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Re ...

  10. 傲梅分区助手专业版 v6.2 中文免费版

    软件名称: 傲梅分区助手专业版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win7 / Vista / Win2003 / WinXP / Win2008 软件大小: 9.1MB 图片预 ...