Excel 文件转 JSON格式对象
将导入的如图所示格式的城乡区划代码的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格式对象的更多相关文章
- 把json格式对象转成可提交字符串格式,会过滤掉函数 {a: {b: 3}, b: [1], c: "d"} -> a.b=3&b[0]=1&c=d
var json = { name: "任务名称" , scoreRule: "", score: "", // 如果规则表达式不为空,则默 ...
- json格式对象大括号中不能把键改为变量问题
今天遇到了一个往json中写入变量的问题,下面代码是错误的写法 document.querySelector(".box").onclick = function(){ // 移动 ...
- 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据
演示效果参考如下:XML转JSON 另一个搭配SQL实现:http://sheetjs.com/sexql/index.html 详细介绍: 1.首先需要导入js <script src=&qu ...
- Java 解析Excel文件为JSON
Excel转Json的需求 反正我对SSM基本不会的情况下来到现在这家公司,都是90后,感觉很好.第二天就给我开发任务,就是把用户上传的Excel文件转成JSON返回给前台用于大屏的数据展示. 解决方 ...
- python读取excel数据为json格式(兼容xls\xlsx)
做自动化时需要从excel读取数据: 本文实现将excel文件数据读取为json格式,方便自动化调用 读取xls文件 使用xlrd读取xls文件代码: import xlrd def read_xls ...
- Excel文件转为其他格式文件
引用:Spire.XLS 是一个 Excel 文件的读写库,无需安装office,使用起来也挺方便的.Spire还有一些其他的库(Spire.Doc,Spire.Pdf……) 说明:Spire.XLS ...
- 下载zip格式文件(压缩Excel文件为zip格式)
Mongodb配置文件参考这一篇:http://www.cnblogs.com/byteworld/p/5913061.html package util; import java.io.Buffer ...
- Creating Excel files with Python and XlsxWriter(通过 Python和XlsxWriter来创建Excel文件(xlsx格式))
以下所有内容翻译至: https://xlsxwriter.readthedocs.io/ #----------------------------------------------------- ...
- node读取excel文件生成JSON
当前的目录结构 excel的数据如下: node识别excel,先得安装 node-xlsx,用npm或yarn都可以 npm install node-xlsx 或 yarn add node- ...
随机推荐
- Dynamics 365 for Team Members Description
Dynamics 365 for Team Members, Business edition The Dynamics 365 for Team Members, Business edition ...
- 使用HttpWebRequest模拟登陆阿里巴巴(alibaba、httpwebrequest、login)
前言 其实老喜欢取经,偶尔也得分享下.关于阿里巴巴国际站的登陆,过程有点复杂但是算不上难.一不小心少个东西倒也挺麻烦的. 主要是看下请求类HttpClient基本请求封装使用,AliClient模拟浏 ...
- Java构造器的深入理解
[构造器与方法的深入理解] 构造器的深入理解 [博主]高瑞林 [博客地址]http://www.cnblogs.com/grl214 [博客地址]http://www.cnblogs.com/grl2 ...
- 解决 jQuery.UI.Resizable aspectRatio在init后无法重新设置
一.背景 在jQuery1.9.x版本之前,存在aspectRatio在Resizable方法init之后,无法再次修改aspectRatio的boolean值. 二.解决方案 // 用于fix j ...
- bzoj1588: [HNOI2002]营业额统计 splay瞎写
最近各种瞎写数论题,感觉需要回顾一下数据结构 写一发splay冷静一下(手速过慢,以后要多练练) 用splay是最直接的方法,但我感觉离散一波应该可以做出来(没仔细想过) 现在没有很追求代码优美,感觉 ...
- hadoop端口配置指南
获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件有 ...
- shell -- yes or no
read -p "Do you want to .... [Y/N]? " yn while true; do case $yn in [Yy]|[Yy][Ee][Ss] ) br ...
- Gpt转mbr
1)Shift + F10 2)diskpart 3)list disk 4)select dist 0 5)clean 6)convert mbr [注]mbr常用于windows操作系统,而gpt ...
- (转)GBDT迭代决策树理解
在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Re ...
- 傲梅分区助手专业版 v6.2 中文免费版
软件名称: 傲梅分区助手专业版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win7 / Vista / Win2003 / WinXP / Win2008 软件大小: 9.1MB 图片预 ...