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日