1. 程式人生 > >jxls把excel資料匯入資料庫

jxls把excel資料匯入資料庫

 @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>