天天看點

Spread for Windows Forms進階主題(5)---資料處理

使用表單的API處理資料

你可以将資料以有格式或無格式字元串或者資料對象的形式填充到單元格中。将資料填充到單元格的最好方式取決于你想添加字元串資料還是資料對象,以及你想添加資料到單一的單元格還是某個範圍内的所有單元格。

舉例來說,如果你使用的資料來自使用者的文本框中,你可能想要添加由Spread控件解析的字元串資料。如果你想要添加多個值,并想要直接将它們添加到資料模型中,可以以對象的方式添加它們。

下表彙總了在表單級别添加資料的方法。

資料描述

單元格數目

方法名

具有格式的字元串(例如"$1,234.56")

單個單元格

GetText

SetText

單元格區域

GetClip

SetClip

沒有格式的字元串(例如"1234.45")

GetValue

SetValue

GetClipValue

SetClipValue

具有格式的資料對象

GetArray

SetArray

當你使用帶格式的資料時,為單元格設定格式的單元格類型解析資料,并将資料存放在資料模型中。當你使用不帶格式的資料時,資料則直接儲存在資料模型中。如果你要把資料添加到直接儲存在資料模型的表單中,你可能需要解析這些資料,因為控件沒有進行解析。

為了向控件中添加大量的資料,可以考慮建立和打開現有的檔案,如文本檔案或Excel格式的檔案。你也可以通過儲存資料并格式化為一個文本檔案,Excel格式檔案,或Spread XML檔案來恢複資料。

下面的示例代碼将帶格式的資料添加到一個單元格區域中:

你可以複制一個單元格區域,并用該單元格區域填充另一個區域内的單元格,可以複制資料及單元格類型等。例如,如果現有一個2行2列的單元格區域,你可以重複向下垂直填充5組2行2列的單元格區域。

使用FillRange方法。該方法使用的參數有:

開始單元格的行索引和列索引

要複制區域的行數和列數

将標明區域複制到的行數(當向左或右時)或列數(當向上或下時)(不是複制操作的重複次數;而是行或列的數目)。

Spread for Windows Forms進階主題(5)---資料處理

例如,使用下面的代碼,你可以實作上圖所示的結果。

你可以使用表單的Copy方法從單元格複制資料,并粘貼到其他單元格。

當你将資料複制到一個單元格(或一個單元格區域)時,資料會替代目标單元格(單元格區域)中的資料。如果該操作複制了一個單元格區域,并将其粘貼到一個位置重疊的區域,那麼所有你要粘貼的單元格的值都會被複制的單元格的值所替代。

你可以指定當單元格或單元格區域被複制時,其中的公式是否自動更新。

你可以使用表單的Move方法 将一個單元格或一個單元格區域的資料移動到另一個單元格或另一個單元格區域。

當你把資料從一個單元格(或一個單元格區域)移動到另一個單元格時(或單元格區域),原單元格(或單元格區域)中的資料就會替代目标單元格(或單元格區域)中的資料。如果該操作移動了一個單元格區域,并将其移動到一個位置重疊的區域,那麼所有你要移動的單元格的值都會被移動的單元格的值所替代。

當單元格或單元格區域被移動時,你可以指定其中的公式是否自動更新。

為了将表單的3行資料向上移動,并将5行資料向下移動,你可能需要在目标位置處插入空行。為了将3行向上移動,5行向下移動,首先臨時複制五行資料,然後将3行資料向上移動到它們的目标位置,然後再将複制的五行配置設定到正确的位置。

下面的代碼完成上述操作:

你可以交換兩個單元格或兩個單元格區域的内容。

當你交換兩個單元格或兩個單元格區域的資料時,單元格的設定也會随着資料一起交換。如果你所做的設定是針對包含單元格的整個列或行或整個表單,而不是針對單元格自身所做的設定,那麼這些設定不會被交換。例如,如果你将源單元格的背景色設定為紅色,那麼背景色能夠被交換過去,目标單元格的背景色就變成了紅色。然而,如果你将包含源單元格的列的背景色設定為紅色,那麼該設定不會被交換。

當你把資料從一個單元格交換到另外一個時,那麼一個單元格中的資料就會變成另外一個單元格的資料,反之亦然。例如,如果單元格A1包含值4,單元格B3包含值6,那麼當你交換這兩個單元格時,A1單元格的值就會變成6,B3單元格的值會變成4。

如果你嘗試将目标區域與一個比它的可用區域大的區域進行交換時,交換操作不會執行。例如,如果你想交換一個含4個單元格的區域,而指定目标區域為表單邊界的一個單元格時,那麼交換操作不會發生。

如果交換操作要交換有重疊區域的單元格,那麼獨立的單元格從重疊區域的轉角處開始交換。

這裡是一個交換單元格區域的代碼示例:

你可以删除所選的單個單元格或多個單元格或一個單元格區域中的資料以及單元格格式,或隻删除資料,保留單元格的格式。想了解更多有關單元格格式的資訊,請參考了解單元格類型如何顯示資料。你可以使用任意一個清除方法或使用剪貼闆的剪切資料操作來删除資料。

你可以使用預設資料模型中任意一個清除方法來删除資料:

Clear方法,删除資料和公式。

ClearFormulas方法,隻删除公式。

ClearData方法,隻删除資料。

ClearCustomNames方法,清除自定義名稱;以及ClearCustomFunctions方法,清除自定義函數。

ClearRange方法,清除單元格區域中的資料,公式,注釋以及格式。

如果你使用ClearRange方法,并将dataOnly參數設定為true,該方法會清除公式,單元格注釋,以及該區域單元格中的文本; 換句話說,它會清除資料模型中與這些單元格相關的所有資訊。

你可以使用range接口中的IRangeSupport.Clear方法來删除一個單元格區域的内容。

<a href="http://gcdn.grapecity.com/showtopic-1920.html">Spread for Windows Forms 5.0 中文版下載下傳位址</a>

附:Spread for Windows Forms進階主題系列文章

<a href="http://www.cnblogs.com/powertoolsteam/archive/2011/08/16/2140457.html">Spread for Windows Forms進階主題(1)---底層模型</a>

<a href="http://www.cnblogs.com/powertoolsteam/archive/2011/08/17/2142085.html">Spread for Windows Forms進階主題(2)---了解單元格類型</a>

<a href="http://www.cnblogs.com/powertoolsteam/archive/2011/08/17/2143276.html">Spread for Windows Forms進階主題(3)---了解單元格的編輯模式</a>

<a href="http://www.cnblogs.com/powertoolsteam/archive/2011/08/18/2144210.html">Spread for Windows Forms進階主題(4)---自定義使用者互動</a>

相關閱讀:

<a href="http://www.cnblogs.com/powertoolsteam/archive/2013/05/27/3101816.html" target="_blank">Spread for Windows Forms 7新功能使用指南</a>

<a href="http://blog.gcpowertools.com.cn/post/Spread-Studio-101-Release.aspx" target="_blank">Spread Studio 10.0v1 釋出</a>

<a href="http://blog.gcpowertools.com.cn/post/Spread-JS-101-Release.aspx" target="_blank">SpreadJS 10.0v1 釋出</a>

繼續閱讀