1. 程式人生 > >PageOffice--讀取Excel文件中的資料

PageOffice--讀取Excel文件中的資料

在實際的開發過程中,經常會遇到提取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。