为了账号安全,请及时绑定邮箱和手机立即绑定

使用poi读取excel文件中的数据,用json传递只能传递两列值

使用poi读取excel文件中的数据,用json传递只能传递两列值

qq__2888 2016-05-31 09:52:22
package com.hzp.test;import java.io.BufferedWriter;  import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.FileOutputStream;  import java.io.FileWriter;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 java.util.Iterator;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.Row;import org.apache.poi.ss.usermodel.Workbook;  public class QQQQ {    /**    * @description: 根据excel文件生成对应的json字符串    * @return    * @throws FileNotFoundException    */    public static String createJson() throws FileNotFoundException {        InputStream is = new FileInputStream("d://123456.XLS");        StringBuffer buffer = new StringBuffer();        try {                 Workbook workbook = new HSSFWorkbook(is);            HSSFSheet sheet = (HSSFSheet) workbook.getSheetAt(0);                          //创建TXT文本          FileWriter ff= new FileWriter("f://1.txt");                    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);                                        //向创建的TXT文本写出xls文件中的内容                ff.write(String.valueOf(i+"---"+row.getPhysicalNumberOfCells()+" "+"    "));                 if(i==0){                       if(j==0){                           key = cell.getStringCellValue();                                                  }                       if(j==1){                           value = cell.getStringCellValue();                                                  }                   } else{                       if(j==0){                           buffer.append("{\"" + key + "\"" + ":" + "\"" +  sheet.getRow(i) + "\"" + ",");                       }                       if(j==0){                           buffer.append("\"" + value + "\"" + ":" + "\"" +  row.getCell(j) + "\"}");                       }                   }                                             }              if(sheet.getPhysicalNumberOfRows()-1!=i && i!=0){                    buffer.append(",");                }                buffer.append("\r");            }            buffer.append("]");                                ff.flush();          ff.close();                } 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("D://1.json");        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));        ObjectOutputStream oos = null;        try {            bw.write(str);            System.out.println("json文件写入完成");      } catch (IOException e) {            e.printStackTrace();        }finally{            if(bw!=null){                bw.close();            }            if(os!=null){                os.close();            }        }    }  }  
查看完整描述

2 回答

?
qq__2888

TA贡献1条经验 获得超0个赞

//img1.sycdn.imooc.com//575cb3ac0001fa3209570201.jpg

excel的截图!

查看完整回答
反对 回复 2016-06-12
?
xczzxc002

TA贡献24条经验 获得超19个赞

贴一下excel的文件截图

查看完整回答
反对 回复 2016-05-31
  • 2 回答
  • 5 关注
  • 1617 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信