java實現將excel表格資料解析成JSONArray
程式主體:
點選(此處)摺疊或開啟
-
/*json頭模板*/
-
public static final int HEADER_VALUE_TYPE_O = 1;
-
-
/*例項*/
-
public static ExcelToJson getExcelToJson() {
-
return new ExcelToJson();
-
}
-
-
/*讀取excel*/
-
public JSONArray readExcel(File file, int headerIndex, int headType) {
-
List<Map<String, Object>> lists = new ArrayList<Map<String, Object>>();
-
if (!fileNameFileter(file)) {
-
return null;
-
} else {
-
try {
-
WorkbookFactory factory = new WorkbookFactory();
-
Workbook workbook = factory.create(file);
-
Sheet sheet = workbook.getSheetAt(0);
-
Row headerRow = getHeaderRow(sheet, headerIndex);
-
FormulaEvaluator formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator();
-
for (int r = headerIndex + 1; r < sheet.getLastRowNum() + 1; r++) {
-
Row dataRow = sheet.getRow(r);
-
Map<String, Object> map = new HashMap<String, Object>();
-
for (int h = 0; h < dataRow.getLastCellNum(); h++) {
-
String key = getHeaderCellValue(headerRow, h, headType);
-
Object value = getCellValue(dataRow, h, formulaEvaluator);
-
if (!key.equals("") && !key.equals("null") && key != null) {
-
map.put(key, value);
-
}
-
}
-
lists.add(map);
-
-
}
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
}
-
JSONArray jsonArray = JSONArray.fromObject(lists);
-
return jsonArray;
-
}
-
-
/*檔案過濾,只有表格才可以處理*/
-
public boolean fileNameFileter(File file) {
-
boolean endsWith = false;
-
if (file != null) {
-
String fileName = file.getName();
-
endsWith = fileName.endsWith(".xls") || fileName.endsWith(".xlsx");
-
}
-
return endsWith;
-
}
-
-
/*獲取表的行*/
-
public Row getHeaderRow(Sheet sheet, int index) {
-
Row headerRow = null;
-
if (sheet != null) {
-
headerRow = sheet.getRow(index);
-
}
-
return headerRow;
-
}
-
-
/*獲取表頭的value*/
-
public String getHeaderCellValue(Row headerRow, int cellIndex, int type) {
-
Cell cell = headerRow.getCell(cellIndex);
-
String headerValue = null;
-
if (cell != null) {
-
if (HEADER_VALUE_TYPE_O == type) {
-
headerValue = cell.getRichStringCellValue().getString();
-
}
-
}
-
return headerValue;
-
}
-
-
/*獲取單元格的值*/
-
public Object getCellValue(Row row, int cellIndex, FormulaEvaluator formulaEvaluator) {
-
Cell cell = row.getCell(cellIndex);
-
if (cell != null) {
-
switch (cell.getCellType()) {
-
//String
-
case Cell.CELL_TYPE_STRING:
-
return cell.getRichStringCellValue().getString();
-
-
//Number
-
case Cell.CELL_TYPE_NUMERIC:
-
if (DateUtil.isCellDateFormatted(cell)) {
-
return cell.getDateCellValue().getTime();
-
} else {
-
return cell.getNumericCellValue();
-
}
-
-
//boolean
-
case Cell.CELL_TYPE_BOOLEAN:
-
return cell.getBooleanCellValue();
-
-
//公式
-
case Cell.CELL_TYPE_FORMULA:
-
return formulaEvaluator.evaluate(cell).getNumberValue();
-
default:
-
return null;
-
}
-
}
-
return null;
- }
測試方法:
點選(此處)摺疊或開啟
-
/*測試入口*/
-
public static void main(String[] args) {
-
File file = new File("C:\\a.xls");
-
ExcelToJson excelToJson = getExcelToJson();
-
JSONArray jsonArray = excelToJson.readExcel(file, 0, 1);
-
System.out.println(jsonArray.toString());
-
}
依賴的jar包:
點選(此處)摺疊或開啟
-
/*測試入口*/
-
public static void main(String[] args) {
-
File file = new File("C:\\a.xls");
-
ExcelToJson excelToJson = getExcelToJson();
-
JSONArray jsonArray = excelToJson.readExcel(file, 0, 1);
-
System.out.println(jsonArray.toString());
- }
點選(此處)摺疊或開啟
-
<!--POI-->
-
<dependency>
-
<groupId>org.apache.poi</groupId>
-
<artifactId>poi</artifactId>
-
<version>3.15</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.apache.poi</groupId>
-
<artifactId>poi-ooxml</artifactId>
-
<version>3.15</version>
-
</dependency>
-
<!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
-
<dependency>
-
<groupId>net.sourceforge.jexcelapi</groupId>
-
<artifactId>jxl</artifactId>
-
<version>2.6.12</version>
-
</dependency>
點選(此處)摺疊或開啟
-
<!--POI-->
-
<dependency>
-
<groupId>org.apache.poi</groupId>
-
<artifactId>poi</artifactId>
-
<version>3.15</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.apache.poi</groupId>
-
<artifactId>poi-ooxml</artifactId>
-
<version>3.15</version>
-
</dependency>
-
<!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
-
<dependency>
-
<groupId>net.sourceforge.jexcelapi</groupId>
-
<artifactId>jxl</artifactId>
-
<version>2.6.12</version>
- </dependency>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30046312/viewspace-2150637/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java實現將資料庫資料轉化成excel表格顯示出來Java資料庫Excel
- php如何將資料匯出成excel表格呢?PHPExcel
- vue+element將資料匯出成excel表格VueExcel
- java怎麼將excel表格資料匯入資料庫JavaExcel資料庫
- 將excel表格匯入資料庫Excel資料庫
- 如何將Word文件轉成Excel表格?Excel
- SpringBoot利用java反射機制,實現靈活讀取Excel表格中的資料和匯出資料至Excel表格Spring BootJava反射Excel
- 將資料庫中資料匯出為excel表格資料庫Excel
- C# 將資料寫入到Excel表格C#Excel
- 將Excel表格內容直接轉換成圖片Excel
- excel表格怎麼轉換成word文件 表格資料轉換到文件Excel
- 將表格資料匯入Excel表程式碼例項Excel
- 透過 C# 將資料寫入到Excel表格C#Excel
- Vue實現匯出excel表格VueExcel
- 資料庫文件編寫,如何通過Navicat把表導成表格?資料庫快速匯出為excel表格資訊,excel匯出到word表格資料庫Excel
- java操作excel表格JavaExcel
- SAP UI5 表格資料如何匯出成 Excel 檔案(Table Export As Excel)UIExcelExport
- 資料匯出為excel表格Excel
- vue實現前端匯出excel表格Vue前端Excel
- EasyPoi框架實現Excel表格匯入框架Excel
- 記事本怎麼轉換成excel表格 怎麼把記事本資料生成excel資料Excel
- excel-Spreadsheets:讀取Excel電子表格資料的Java原始碼ExcelJava原始碼
- 如何將資料庫中的資料導成 excel 檔案資料庫Excel
- 如何用Java將excel資料匯入資料庫JavaExcel資料庫
- 使用Java操作Excel表格JavaExcel
- 資料重整:用Java實現精準Excel資料排序的實用策略JavaExcel排序
- Excel表格增加和刪除Excel圖表資料Excel
- java程式碼實現excel檔案資料匯入JavaExcel
- 使用SqlBulkCopy類實現匯入excel表格SQLExcel
- vue匯出excel資料表格功能VueExcel
- vue將表格匯出為excelVueExcel
- django實現將後臺資料excel檔案形式匯出DjangoExcel
- java 實現excel中的資料匯入到資料庫的功能JavaExcel資料庫
- java 匯入到EXCEL表格JavaExcel
- Java 解析 ExcelJavaExcel
- Java解析ExcelJavaExcel
- 如何檢視和分析Excel表格資料Excel
- vue2.0 匯出Excel表格資料VueExcel