将excel中的若干列数据生成json格式文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/XLSMN/article/details/78520365

本博客的主要目的是想通过java语言实现多列数据生成json文件

比如我们现有一个excel文件如下(总共34个省份)


三列数据分别代表省份、经度和纬度,现在想生成如下json格式文件

{"name":"浙江省","lng":"120.04928840814","lat":"29.1697631465"},
{"name":"云南省","lng":"101.48578795595","lat":"24.97521852424"},
{"name":"新疆省","lng":"85.20935642655","lat":"41.11846529068"},
{"name":"香港特别行政区","lng":"114.18815498416","lat":"22.33584826665"},
{"name":"西藏自治区","lng":"88.43682786652","lat":"31.49085987835"},
{"name":"台湾","lng":"120.96642604742","lat":"23.75280834117"},
{"name":"四川省","lng":"102.709686253","lat":"30.617160589"},
{"name":"陕西省","lng":"108.86979596095","lat":"35.1913117294"},
{"name":"山西省","lng":"112.2908364953","lat":"37.57419650609"},
{"name":"山东省","lng":"118.14820982521","lat":"36.33932299435"},
{"name":"青海省","lng":"95.99534761516","lat":"35.74497433619"},
{"name":"宁夏回族自治区","lng":"106.1655673523","lat":"37.27418252583"},
{"name":"内蒙古自治区","lng":"113.94844248167","lat":"44.09549677872"},
{"name":"辽宁省","lng":"122.61050671674","lat":"41.2994293423"}

具体步骤为:

1:首先安装配置eclipse,在此不再过多叙述,可以问度娘;
2:下载poi.jar,在eclipse中引用,具体链接https://www.apache.org/dyn/closer.lua/poi/dev/bin/poi-bin-3.17-beta1-20170701.tar.gz
只需要压缩包中的poi-3.17-beta1.jar

3:具体实现代码如下,其中建立一个二维数据用于存储经纬度,一个一维数据用于存储省名

package readExcel;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class readExcel_kml {
public static double[][] array1=new double[34][3];
public static String[] array2=new String[34];

public static void main(String[] args) throws FileNotFoundException, IOException  {
String file="E:\\java.jar\\province.xls";
new readExcel_kml().return_array(file);
new readExcel_kml().return_array2(file);
for(int i=0;i<34;i++){
System.out.println(
"{"+"\""+"name"+"\""+":"+"\""+array2[i]+"\""+","+"\""+"lng"+"\""+":"+"\""+array1[i]                                                                       [1]+"\""+","+"\""+"lat"+"\""+":"+"\""+array1[i][2]+"\""+"}"+","
              );  

                                }
                                                                                                                                    }


public  double[][] return_array(String file) throws IOException, FileNotFoundException {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
HSSFSheet sheet=workbook.getSheet("province");
int rows=sheet.getPhysicalNumberOfRows();   //得到所有有数据的行
for(int i=0;i<rows;i++){
   HSSFRow row=sheet.getRow(i);
   if(row != null){
  int cells=row.getPhysicalNumberOfCells(); 
     for(int j=1;j<cells;j++){
       HSSFCell cell=row.getCell(j);
       double cell_out=(double)cell.getNumericCellValue();                  
          array1[i][j]=cell_out;
                                           }
                   }
                                }
return array1;
                                      }
    

public  String[] return_array2(String file) throws IOException, FileNotFoundException {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
HSSFSheet sheet=workbook.getSheet("province");
int rows=sheet.getPhysicalNumberOfRows();
for(int i=0;i<rows;i++){
   HSSFRow row=sheet.getRow(i);
   if(row != null){
  int cells=row.getPhysicalNumberOfCells(); 
     for(int j=0;j<cells-2;j++){
       HSSFCell cell=row.getCell(j);
       String cell_out=(String)cell.getStringCellValue();                    
          array2[i]=cell_out;
          }
     }
   }

return array2;
}
}

猜你喜欢

转载自blog.csdn.net/XLSMN/article/details/78520365