將導入的如圖所示格式的城鄉區劃代碼的excel文件整理成json格式的對象儲存在js文件中:前端
var PROJECTDISTRICTDATA=[
{
"name": "鼓樓區",
"departid": 320302000000,
"type": "district",
"street": [
{
"name": "黃樓街道",
"departid": 320302001000,
"type": "street",
"village": [
{
"name": "華聯社區居委會",
"departid": 320302001001,
"type": "village"
}
]
}
]
}
];java
/**
* 由後臺根據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; } }