Excel 文件轉 JSON格式對象

將導入的如圖所示格式的城鄉區劃代碼的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; } }
相關文章
相關標籤/搜索