猿问

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

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();  

          }  

      }  

  }  


}  


qq__2888
浏览 1618回答 2
2回答

qq__2888

excel的截图!

xczzxc002

贴一下excel的文件截图
随时随地看视频慕课网APP

相关分类

Java
我要回答