我試圖將Excel數據轉換爲JSON格式。我成功地通過讀取行和列來轉換Excel數據,並將數據設置爲列表,然後將該列表轉換爲JSON格式。Excel到JSON轉換器在JAVA
下面是使用它的IAM的代碼,但尚未開始怎麼做像3列數據這樣的嵌套數據應該像上面的圖像一樣出現在一個數組中。
POJO類:
public class Products implements Serializable{
@Id
@Column(name="ID")
private String id;
@Column(name="PRODUCTID")
private String productId;
@Column(name="NAMEID")
private String nameId;
@Column(name="NAME")
private String name;
@Column(name="P_DESC")
private String desc;
@Column(name="DIMENSION")
private String dimension;
@Column(name="CATEGORY")
private String category;
@Column(name="SUB_CATEGORY")
private String subcategory;
@Column(name="CATEGORYID")
private String categoryId;
@Column(name="SUBCATEGORYID")
private String subcategoryId;
@Column(name="TAGS")
private String tags;
@Column(name="DESIGNER")
private String designer;
@Column(name="CURR")
private String curr;
@Column(name="POPULARITY")
private String popularity;
@Column(name="RELEVANCE")
private String relevance;
@Column(name="SHORTLISTED")
private String shortlisted;
@Column(name="LIKES")
private String likes;
@Column(name="CREATE_String")
private String createDt;
@Column(name="PAGEID")
private String pageId;
@Column(name="STYLENAME")
private String styleName;
@Column(name="STYLEID")
private String styleId;
@Column(name="PRICERANGE")
private String priceRange;
@Column(name="PRICEID")
private String priceId;
@Column(name="DEFAULT_PRICE")
private String defaultPrice;
@Column(name="DEFAULT_MATERIAL")
private String defaultMaterial;
@Column(name="DEFAULT_FINISH")
private String defaultFinish;
/* setters and getters */
}
ExceltoJsonConverter類:
public static void uploadXLS(MultipartFile file, Document doc)
throws IOException {
Products products = new Products();
List<Products> productsList = new ArrayList<Products>();
logger.info("uploadExcel method");
HSSFWorkbook wb = null;
try {
wb= new HSSFWorkbook(file.getInputStream());
System.out.println("workbook: "+wb);
HSSFSheet sheet = wb.getSheetAt(0);
System.out.println("worksheet: "+sheet);
HSSFRow row;
Iterator<Row> iterator = sheet.iterator();
while (iterator.hasNext()) {
products = new Products();
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
Cell cell = cellIterator.next();
Iterator cells = nextRow.cellIterator();
cell=(HSSFCell) cells.next();
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING)
{
System.out.print(cell.getStringCellValue()+" ");
}
else if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
{
System.out.print(cell.getNumericCellValue()+" ");
}
else if(HSSFDateUtil.isCellDateFormatted(cell)){
Date date = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());
} else
{
//U Can Handel Boolean, Formula, Errors
}
products.setId(new DataFormatter().formatCellValue(nextRow.getCell(0)));
products.setProductId(new DataFormatter().formatCellValue(nextRow.getCell(1)));
products.setNameId(new DataFormatter().formatCellValue(nextRow.getCell(2)));
products.setName(new DataFormatter().formatCellValue(nextRow.getCell(3)));
products.setDesc(new DataFormatter().formatCellValue(nextRow.getCell(4)));
products.setDimension(new DataFormatter().formatCellValue(nextRow.getCell(5)));
products.setCategory(new DataFormatter().formatCellValue(nextRow.getCell(6)));
products.setSubcategory((new DataFormatter().formatCellValue(nextRow.getCell(7))));
products.setCategoryId(new DataFormatter().formatCellValue(nextRow.getCell(8)));
products.setSubcategoryId((new DataFormatter().formatCellValue(nextRow.getCell(9))));
products.setTags((new DataFormatter().formatCellValue(nextRow.getCell(10))));
products.setDesigner((new DataFormatter().formatCellValue(nextRow.getCell(11))));
products.setCurr((new DataFormatter().formatCellValue(nextRow.getCell(12))));
products.setPopularity((new DataFormatter().formatCellValue(nextRow.getCell(13))));
products.setRelevance((new DataFormatter().formatCellValue(nextRow.getCell(14))));
products.setShortlisted((new DataFormatter().formatCellValue(nextRow.getCell(15))));
products.setLikes((new DataFormatter().formatCellValue(nextRow.getCell(16))));
products.setCreateDt((new DataFormatter().formatCellValue(nextRow.getCell(17))));
products.setPageId((new DataFormatter().formatCellValue(nextRow.getCell(18))));
products.setStyleName((new DataFormatter().formatCellValue(nextRow.getCell(19))));
products.setStyleId((new DataFormatter().formatCellValue(nextRow.getCell(20))));
products.setPriceRange((new DataFormatter().formatCellValue(nextRow.getCell(21))));
products.setPriceId((new DataFormatter().formatCellValue(nextRow.getCell(22))));
products.setDefaultPrice((new DataFormatter().formatCellValue(nextRow.getCell(23))));
products.setDefaultMaterial((new DataFormatter().formatCellValue(nextRow.getCell(24))));
products.setDefaultFinish((new DataFormatter().formatCellValue(nextRow.getCell(25))));
Map<String, String> inputMap = new HashMap<String, String>();
inputMap.put("name", "Java2Novice");
inputMap.put("site", "http://java2novice.com");
productsList.add(products);
System.out.println(productsList);
// JSON CONVERTER
ObjectMapper mapper = new ObjectMapper();
System.out.println("productsList: "+products);
DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date();
String location = dateFormat.format(date);
System.out.println("productsList final: "+products);
// Convert object to JSON string and save into file directly
mapper.writeValue(new File("D:\\"+location+"mygubbi.json"), productsList);
// Convert object to JSON string and save into file directly
mapper.writeValue(new File("D:\\products.json"), productsList);
// Convert object to JSON string
String jsonInString = mapper.writeValueAsString(productsList);
System.out.println("JsonInString " +jsonInString);
// Convert object to JSON string and pretty print
jsonInString = mapper.writerWithDefaultPrettyPrinter()
.writeValueAsString(products);
System.out.println("Final Json" +mapper.writerWithDefaultPrettyPrinter()
.writeValueAsString(products));
mapper.writeValue(new File("D:\\productsJson.json"), jsonInString);
}
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally {
}
}
A BIG預先感謝你...希望任何人今天能夠讓我的一天:)
我刪除了我的答案。目前尚不清楚你的具體問題是什麼。儘量減少您的問題至關重要,並且不要忽略重要信息。 – idelvall