excel文件中的數據轉化為json格式並輸出json文件


1:需求:將excel中的數據獲取出來,轉化為json格式,之后輸出到.json文件中。

2:步驟:(1): 將excel中的數據獲取出來,使用jsonObject轉化為json格式字符串

      (2):使用輸出流將json字符串輸出到json文件中

3:需要的依賴:

  

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<classifier>jdk15</classifier>
<version>2.2.3</version>
</dependency>

4:代碼

public class ExcelTojson {
//json的key
private static String[] titleArray = { "userName", "phoneNum"};


public static void main(String[] args) {

InputStream is = null;
String excelToJson = excelToJson(is);
try {
createJsonFile(excelToJson);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public static String excelToJson(InputStream is) {
JSONObject jsonRow = new JSONObject();
try {
// 獲取文件
is = new FileInputStream("C:\\Users\\Administrator\\Desktop\\新建 XLSX 工作表.xlsx");
// 創建excel工作空間
Workbook workbook = WorkbookFactory.create(is);
// 獲取sheet頁的數量
int sheetCount = workbook.getNumberOfSheets();

// 遍歷每個sheet頁
for (int i = 0; i < sheetCount; i++) {
// 獲取每個sheet頁
Sheet sheet = workbook.getSheetAt(i);
// 獲取sheet頁的總行數
int rowCount = sheet.getPhysicalNumberOfRows();
// 遍歷每一行
for (int j = 0; j < rowCount; j++) {
//記錄每一行的一個唯一標識作為json的key
String key="";
// 獲取列對象
Row row = sheet.getRow(j);
// 獲取總列數
int cellCount = row.getPhysicalNumberOfCells();
Map<String, String> map = new HashMap<String, String>();
//除去第一行的標題
if (j > 0) {
// 遍歷所有數據
for (int n = 0; n < cellCount; n++) {
// 獲取每一個單元格
Cell cell = row.getCell(n);
// 在讀取單元格內容前,設置所有單元格中內容都是字符串類型
cell.setCellType(Cell.CELL_TYPE_STRING);
// 按照字符串類型讀取單元格內數據
String cellValue = cell.getStringCellValue();
if(n==1) {
key=cellValue;
}
map.put(titleArray[n], cellValue);

}
}

if (map.size() != 0) {
jsonRow.put(key,map);

}

}

}
System.out.println(jsonRow.toString());
} catch (Exception e) {

}
return jsonRow.toString();

}



public static void createJsonFile(String jsonData) throws IOException {
File file = new File("C:\\Users\\Administrator\\Desktop\\用戶.json");
//連接流
FileOutputStream fos=null;
//鏈接流
BufferedOutputStream bos =null;
try {
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(jsonData.getBytes());;
bos.flush();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(null!=bos) {
bos.close();
}
if(null!=fos) {
fos.close();
}
}
}


}

 

 

4:效果

      excel文件數據:

      json文件

{"20161031993":{"phoneNum":"20161031993","userName":"小明"},"20161031974":{"phoneNum":"20161031974","userName":"小紅"},"20161031847":{"phoneNum":"20161031847","userName":"小張"},"20161031893":{"phoneNum":"20161031893","userName":"小李"},"20161032008":{"phoneNum":"20161032008","userName":"小王"},"20161031811":{"phoneNum":"20161031811","userName":"小牛"},"20161032052":{"phoneNum":"20161032052","userName":"小宋"},"20161032042":{"phoneNum":"20161032042","userName":"小金"}}

 5:改進

    可以查找java代碼,將輸出的json格式化,使其更加美觀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM