package com.besttone.util;

import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.Buffer;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Workbook;


public class CreateProvinceJsonUtil {

    /**
     * @description: 根据excel文件生成对应的json字符串
     * @return
     * @throws FileNotFoundException
     */
    public static String createJson() throws FileNotFoundException {
        InputStream is = new FileInputStream("E:\\信令项目\\provinceCode.xls");
        StringBuffer buffer = new StringBuffer();
        try {
            Workbook workbook = new HSSFWorkbook(is);
            HSSFSheet sheet = (HSSFSheet) workbook.getSheetAt(0);
            String key = "";
            String value = "";
            buffer.append("[");            
            for (int i = 0; i < sheet.getPhysicalNumberOfRows(); i++) {
                HSSFRow row = sheet.getRow(i);
                for(int j=0;j<row.getPhysicalNumberOfCells();j++){
                    HSSFCell cell = row.getCell(j);                    
                   if(i==0){
                       if(j==0){
                           key = cell.getStringCellValue();                           
                       }
                       if(j==1){
                           value = cell.getStringCellValue();                           
                       }
                   } else{
                       if(j==0){
                           buffer.append("{\"" + key + "\"" + ":" + "\"" +  getCellValue(cell) + "\"" + ",");
                       }
                       if(j==1){
                           buffer.append("\"" + value + "\"" + ":" + "\"" +  getCellValue(cell) + "\"}");
                       }

                   }
                }
                if(sheet.getPhysicalNumberOfRows()-1!=i && i!=0){
                    buffer.append(",");
                }
                buffer.append("\r");
            }
            buffer.append("]");
        } catch (IOException e) {
            System.out.println("出现异常");
            e.printStackTrace();
        }

        return buffer.toString();
    }

    /**
     * 获取当前单元格内容
     * */  
    private static String getCellValue(Cell cell){  
        String value = "";  
        if(cell!=null){  
            switch (cell.getCellType()) {  
            case Cell.CELL_TYPE_NUMERIC:  
                if(HSSFDateUtil.isCellDateFormatted(cell)){ //日期类型  
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
                    Date date = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());  
                    value = sdf.format(date);  
                }else{  
                    Integer data = (int) cell.getNumericCellValue();  
                    value = data.toString();  
                }  
                break;  
            case Cell.CELL_TYPE_STRING:  
                value = cell.getStringCellValue();  
                break;  
            case Cell.CELL_TYPE_BOOLEAN:  
                Boolean data = cell.getBooleanCellValue();  
                value = data.toString();   
                break;  
            case Cell.CELL_TYPE_ERROR:  
                System.out.println("单元格内容出现错误");  
                break;  
            case Cell.CELL_TYPE_FORMULA:  
                value = String.valueOf(cell.getNumericCellValue());    
                if (value.equals("NaN")) {// 如果获取的数据值非法,就将其装换为对应的字符串  
                    value = cell.getStringCellValue().toString();    
                }             
                break;            
            case Cell.CELL_TYPE_BLANK:  
                System.out.println("单元格内容 为空值 ");  
                break;            
            default :  
                value = cell.getStringCellValue().toString();  
                break;  
            }  
        }  
        return value;  
    }  
    
    /**
     * @description: 将生成的字符串输出到一个文件中  
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        String str = createJson();
        OutputStream os = new FileOutputStream("E:\\信令项目\\provinceCode.json");
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
        ObjectOutputStream oos = null;
        try {
            bw.write(str);
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(bw!=null){
                bw.close();
            }
            if(os!=null){
                os.close();
            }
        }
    }

}


最近下载更多
lxzsuper  LV12 2023年11月8日
chj198795  LV7 2023年5月10日
admin123lhz  LV7 2021年11月13日
Eddie233  LV6 2021年8月23日
wangdongtai  LV31 2020年10月18日
luesjim  LV11 2020年7月12日
dpfjames  LV6 2020年4月10日
2252536772  LV21 2019年12月18日
xuyongff  LV24 2019年11月26日
myjzb111  LV9 2019年11月12日
最近浏览更多
lxzsuper  LV12 2023年11月8日
3334004690  LV10 2023年11月1日
chj198795  LV7 2023年5月10日
1358849392  LV21 2022年11月11日
萌新不想挨打 2022年9月4日
暂无贡献等级
suiyibawokeyi 2022年6月5日
暂无贡献等级
1234mama  LV19 2022年4月13日
cc900118  LV17 2022年2月18日
一直都会顺利的小吴  LV5 2022年2月16日
2607825144qq  LV3 2021年12月8日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友