天天看點

利用Aspose.Cell控件導入Excel非強類型的資料

導入Excel的操作是非常常見的操作,可以使用Aspose.Cell、APOI、MyXls、OLEDB、Excel VBA等操作Excel檔案,進而實作資料的導入,在導入資料的時候,如果是強類型的資料,那麼這幾種方式好像都表現差不多,正常操作能夠導入資料。如果是非強類型的資料,那麼就需要特别注意了,一般情況下,導入的DataTable資料列的類型是以第一行内容作為确定列類型的,本文介紹利用Aspose.Cell控件導入Excel非強類型的資料的操作。

什麼是強類型的資料呢,就是在Excel表格中,除了第一列名外,他們的資料格式都一樣的,如下所示。

利用Aspose.Cell控件導入Excel非強類型的資料

如果使用C#導入到Winform界面中,那麼資料顯示效果如下所示。從這裡可以看到,這些資料都是遵循一定的格式,名字為字元串,年齡為數值。

利用Aspose.Cell控件導入Excel非強類型的資料

使用OLEDB方式導入Excel資料的代碼如下所示。

但有時,我們可能會碰到客戶資料不一樣的地方。如年齡可能輸入了“10”,也可能輸入“10歲”這樣的,正常的導入,一般是以第一個出現的數值而定,如果是字元串,那麼後面的數值可能導入就不能正常顯示了。例如,如果是下面的Excel,那麼資料Marks列就會以第一行資料為準,後面的那些 “Fail” 字元,将不可識别,在DataTable中的值變為NULL值了。

利用Aspose.Cell控件導入Excel非強類型的資料

為了有效錄入非強類型的表格資料,我們可以就不能使用正常的操作代碼,Aspose.Cell的控件提供了一個API,名為ExportDataTableAsString的函數,這個函數是把所有内容轉換為字元串集合類型,這樣所有的内容将被保留。

public System.Data.DataTable ExportDataTableAsString ( Int32 firstRow, Int32 firstColumn, Int32 totalRows, Int32 totalColumns, Boolean exportColumnName )

Name

Description

firstRow

The row number of the first cell to export out.

firstColumn

The column number of the first cell to export out.

totalRows

Number of rows to be imported.

totalColumns

Number of columns to be imported.

exportColumnName

Indicates whether the data in the first row are exported to the column name of the DataTable

 使用Aspose.Cell這個API導入的資料代碼如下所示。

使用該函數導入的資料,因為全部都以字元串格式進行導入,就不會出現,有些解析不了的問題了。在Winform中顯示出來的結果顯示,正常。

利用Aspose.Cell控件導入Excel非強類型的資料

繼續閱讀