将excel中的若干列数据生成json格式文件
本博客的主要目的是想通过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; } }
