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- ...
随机推荐
- php从命令行中接收参数
php一直都是作为服务器编程的主要角色,其实php也可已做脚本,比如从命令行中接收一些参数,下面就简单介绍一下如何从命令行中接收参数 代码如下: <?php var_dump($argv); ? ...
- Android消息推送之GCM方式(一)
<声明> 转载请保留本来源地址: http://blog.csdn.net/wzg_1987/article/details/9140371 首先,你需要使用一个谷歌账号登录谷歌Api控制 ...
- anadonca环境配置和模块安装
1.最方便的python环境配置: 下载anaconda即可,自带spyder,集成科学计算的库,自带pip,不用折腾. 想用sublime编写python并运行的话,需要自己配置编译环境,并下载插件 ...
- openstack中的floating ip与阿里云的公网ip
项目组因业务需求使用openstack搭建了一个私有云,本想在vm上搭建一个ftp.源是vsftpd.所有配置都完成了,在远程登录的时候却出现了 这个问题. 初一看以为是文件夹权限的问题,可上上下下全 ...
- js区分汉字和字符,校验长度
遇到这么一个问题, 长度限制输入150个英文字符(小于等于150个英文字符长度),超出则直接禁止输入,并提醒:摘要输入必须小于等于75个中文字符长度! 长度校验倒是没问题,但是要区分汉字还是英文 ...
- Spark 2.x不支持ALTER TABLE ADD COLUMNS,没关系,我们改进下
SparkSQL从2.0开始已经不再支持ALTER TABLE table_name ADD COLUMNS (col_name data_type [COMMENT col_comment], .. ...
- TypeScript 中的 SOLID 原则
下面的文章解释了正确使用 TypeScrip的 SOLID原则. 原文地址:https://samueleresca.net/2016/08/solid-principles-using-typesc ...
- 控制 Memory 和 CPU 资源的使用
Resource Governor的出现,解决了在一台SQL Server实例上,管理多用户工作负载和资源隔离的需求,它允许管理员限制系统处理Requsts时所耗费的CPU 和 Memory资源的数量 ...
- smoke.js是一款基于HTML5 Canvas的逼真烟雾特效js插件。通过该js插件,可以非常轻松的在页面中制作出各种烟雾效果。
Smoke.js 是一个浏览器默认警告系统的JavaScript替代品,如果你想要跨浏览器与平台的标准化JavaScript警告窗口,Smoke.js就是你想要的. Smoke.js是一个轻量级且灵活 ...
- 捕获input 文本框内容改变的事件(onchange,onblur,onPropertyChange比较)
input 文本框内容改变,可以使用onchange或者onblur来判断,但onchange是在文本内容改变,然后失去焦点的时发生,onblur是在失去焦点时发生,不会自己去判断. 如: <i ...