jxls把excel資料匯入資料庫
阿新 • • 發佈:2019-02-10
@RequestMapping(value = "do", method = RequestMethod.GET) public void do() throws IOException { String filePath = "G:\\developsum\\5\\\\record.xlsx"; try { List<RecordInfo> infoList = getExcelDataForVideoInfo(filePath); // assRecordBo.doJob2(infoList); } catch (Exception e) { e.printStackTrace(); } } public List<RecordInfo> getExcelDataForVideoInfo(String path) { List<RecordInfo> recordInfoList = new ArrayList<RecordInfo>(); try { InputStream inputXML = new BufferedInputStream(getClass().getClassLoader().getResourceAsStream("videoConfig.xml")); XLSReader mainReader = ReaderBuilder.buildFromXML(inputXML); InputStream inputXLS = new BufferedInputStream(new FileInputStream(new File(path))); RecordInfo recordInfo = new RecordInfo(); Map<String, Object> beans = new HashMap<String, Object>(); beans.put("recordInfo", recordInfo); beans.put("recordInfoList", recordInfoList); XLSReadStatus readStatus = mainReader.read(inputXLS, beans); if (readStatus.isStatusOK()) { System.out.println("jxls讀取Excel成功!"); } } catch (Exception e) { e.printStackTrace(); } return recordInfoList; }
videoConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <workbook> <worksheet name="賬單明細"> <section startRow="0" endRow="0"/> <loop startRow="1" endRow="1" items="recordInfoList" var="recordInfo" varType="RecordInfo"> <section startRow="1" endRow="1"> <mapping row="1" col="0">recordInfo.areaId</mapping> <mapping row="1" col="1">recordInfo.userName</mapping> <mapping row="1" col="2">recordInfo.idCard</mapping> </section> <loopbreakcondition> <rowcheck offset="0"> <cellcheck offset="0"></cellcheck> </rowcheck> </loopbreakcondition> </loop> </worksheet> </workbook>
recordInfo
public class RecordInfo {
private String areaId;
private String userName;
private String idCard;
public String getAreaId() {
return areaId;
}
public void setAreaId(String areaId) {
this.areaId = areaId;
}
}
<dependency> <groupId>net.sf.jxls</groupId> <artifactId>jxls-reader</artifactId> <version>1.0.6</version> </dependency>