PageOffice--讀取Excel文件中的資料
阿新 • • 發佈:2018-12-09
在實際的開發過程中,經常會遇到提取Excel文件中資料儲存到資料庫中的需求,PageOffice對此也提供了很好的解決方案。
客戶端線上開啟Excel檔案,儲存的時候,PageOffice可以打包Excel文件中的指定單元格的資料或所有的資料提交到伺服器端,在伺服器端建立PageOffice的ExcelReader名稱空間中的Workbook物件,就可以獲取到Excel單元格中的值了。
請參考PageOffice產品開發包中Samples4示例的演示: 一、14、最簡單的提交Excel中的使用者輸入內容
Java程式碼:
Workbook workBook = new Workbook(request, response); Sheet sheet = workBook.openSheet("Sheet1"); Table table = sheet.openTable("A1:F5"); String content = ""; int row = 1; while (!table.getEOF()) { //獲取提交的數值 if (!table.getDataFields().getIsEmpty()) { content += "A"+String.valueOf(row)+":"+ table.getDataFields().get(0).getText(); content += "B"+String.valueOf(row)+":"+ table.getDataFields().get(1).getText(); content += "C"+String.valueOf(row)+":"+ table.getDataFields().get(2).getText(); content += "D"+String.valueOf(row)+":"+ table.getDataFields().get(3).getText(); content += "E"+String.valueOf(row)+":"+ table.getDataFields().get(4).getText(); content += "F"+String.valueOf(row)+":"+ table.getDataFields().get(5).getText(); System.out.println(content); //輸出一行的資料 row++; table.nextRow();//迴圈進入下一行 } } table.close(); workBook.close();
ASP.NET程式碼:
PageOffice.ExcelReader.Workbook workBook = new PageOffice.ExcelReader.Workbook(); PageOffice.ExcelReader.Sheet sheet = workBook.OpenSheet("Sheet1"); PageOffice.ExcelReader.Table table = sheet.OpenTable("A1:F5"); string content = ""; int row = 1; while (!table.EOF) { //獲取提交的資料 if (!table.DataFields.IsEmpty) { content += "A"+ row.ToString()+":"+ table.DataFields[0].Text; content += "B"+ row.ToString()+":"+ table.DataFields[1].Text; content += "C"+ row.ToString()+":"+ table.DataFields[2].Text; content += "D"+ row.ToString()+":"+ table.DataFields[3].Text; content += "E"+ row.ToString()+":"+ table.DataFields[4].Text; content += "F"+ row.ToString()+":"+ table.DataFields[5].Text; Response.Write(content); //輸出一行的資料 row++; table.NextRow();//迴圈進入下一行 } } table.Close(); workBook.Close();
與POI和SharePoint的區別:
- POI和SharePoint讀取檔案中資料的工作都是在伺服器端執行的,需要耗費大量伺服器資源去處理,還需要處理多個客戶併發請求的問題;PageOffice真正的讀取單元格資料工作是在客戶端執行的,伺服器端這些物件只接受一下資料就行,因為每個客戶端都各自讀取自己的資料,伺服器端只接收資料儲存到資料庫,所以程式設計實現比較簡單。
- POI需要針對xls和xlsx兩種格式的檔案編寫不同的程式,工作量翻倍。HSSFWorkbook是解析出來excel 2007 以前版本的,字尾名為xls的,XSSFWorkbook是解析excel 2007 版的,字尾名為xlsx。