在實際的開發過程當中,常常會遇到提取Excel文檔中數據保存到數據庫中的需求,PageOffice對此也提供了很好的解決方案。數據庫
客戶端在線打開Excel文件,保存的時候,PageOffice能夠打包Excel文檔中的指定單元格的數據或全部的數據提交到服務器端,在服務器端建立PageOffice的ExcelReader命名空間中的Workbook對象,就能夠獲取到Excel單元格中的值了。編程
請參考PageOffice產品開發包中Samples4示例的演示:
1、1四、最簡單的提交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代碼:excel
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的區別:code
- POI和SharePoint讀取文件中數據的工做都是在服務器端執行的,須要耗費大量服務器資源去處理,還須要處理多個客戶併發請求的問題;PageOffice真正的讀取單元格數據工做是在客戶端執行的,服務器端這些對象只接受一下數據就行,由於每一個客戶端都各自讀取本身的數據,服務器端只接收數據保存到數據庫,因此編程實現比較簡單。
- POI須要針對xls和xlsx兩種格式的文件編寫不一樣的程序,工做量翻倍。HSSFWorkbook是解析出來excel 2007 之前版本的,後綴名爲xls的,XSSFWorkbook是解析excel 2007 版的,後綴名爲xlsx。