使用表單的API處理數(shù)據(jù)你可以將數(shù)據(jù)以有格式或無格式字符串或者數(shù)據(jù)對(duì)象的形式填充到單元格中。將數(shù)據(jù)填充到單元格的最好方式取決于你想添加字符串?dāng)?shù)據(jù)還是數(shù)據(jù)對(duì)象,以及你想添加數(shù)據(jù)到單一的單元格還是某個(gè)范圍內(nèi)的所有單元格。 舉例來說,如果你使用的數(shù)據(jù)來自用戶的文本框中,你可能想要添加由Spread控件解析的字符串?dāng)?shù)據(jù)。如果你想要添加多個(gè)值,并想要直接將它們添加到數(shù)據(jù)模型中,可以以對(duì)象的方式添加它們。 下表匯總了在表單級(jí)別添加數(shù)據(jù)的方法。
當(dāng)你使用帶格式的數(shù)據(jù)時(shí),為單元格設(shè)置格式的單元格類型解析數(shù)據(jù),并將數(shù)據(jù)存放在數(shù)據(jù)模型中。當(dāng)你使用不帶格式的數(shù)據(jù)時(shí),數(shù)據(jù)則直接保存在數(shù)據(jù)模型中。如果你要把數(shù)據(jù)添加到直接保存在數(shù)據(jù)模型的表單中,你可能需要解析這些數(shù)據(jù),因?yàn)榭丶]有進(jìn)行解析。 為了向控件中添加大量的數(shù)據(jù),可以考慮創(chuàng)建和打開現(xiàn)有的文件,如文本文件或Excel格式的文件。你也可以通過保存數(shù)據(jù)并格式化為一個(gè)文本文件,Excel格式文件,或Spread XML文件來恢復(fù)數(shù)據(jù)。 下面的示例代碼將帶格式的數(shù)據(jù)添加到一個(gè)單元格區(qū)域中:
填充區(qū)域單元格的值你可以復(fù)制一個(gè)單元格區(qū)域,并用該單元格區(qū)域填充另一個(gè)區(qū)域內(nèi)的單元格,可以復(fù)制數(shù)據(jù)及單元格類型等。例如,如果現(xiàn)有一個(gè)2行2列的單元格區(qū)域,你可以重復(fù)向下垂直填充5組2行2列的單元格區(qū)域。 使用FillRange方法。該方法使用的參數(shù)有:
例如,使用下面的代碼,你可以實(shí)現(xiàn)上圖所示的結(jié)果。
復(fù)制表單的數(shù)據(jù)你可以使用表單的Copy方法從單元格復(fù)制數(shù)據(jù),并粘貼到其他單元格。 當(dāng)你將數(shù)據(jù)復(fù)制到一個(gè)單元格(或一個(gè)單元格區(qū)域)時(shí),數(shù)據(jù)會(huì)替代目標(biāo)單元格(單元格區(qū)域)中的數(shù)據(jù)。如果該操作復(fù)制了一個(gè)單元格區(qū)域,并將其粘貼到一個(gè)位置重疊的區(qū)域,那么所有你要粘貼的單元格的值都會(huì)被復(fù)制的單元格的值所替代。 你可以指定當(dāng)單元格或單元格區(qū)域被復(fù)制時(shí),其中的公式是否自動(dòng)更新。 移動(dòng)表單中的數(shù)據(jù)你可以使用表單的Move方法 將一個(gè)單元格或一個(gè)單元格區(qū)域的數(shù)據(jù)移動(dòng)到另一個(gè)單元格或另一個(gè)單元格區(qū)域。 當(dāng)你把數(shù)據(jù)從一個(gè)單元格(或一個(gè)單元格區(qū)域)移動(dòng)到另一個(gè)單元格時(shí)(或單元格區(qū)域),原單元格(或單元格區(qū)域)中的數(shù)據(jù)就會(huì)替代目標(biāo)單元格(或單元格區(qū)域)中的數(shù)據(jù)。如果該操作移動(dòng)了一個(gè)單元格區(qū)域,并將其移動(dòng)到一個(gè)位置重疊的區(qū)域,那么所有你要移動(dòng)的單元格的值都會(huì)被移動(dòng)的單元格的值所替代。 當(dāng)單元格或單元格區(qū)域被移動(dòng)時(shí),你可以指定其中的公式是否自動(dòng)更新。 為了將表單的3行數(shù)據(jù)向上移動(dòng),并將5行數(shù)據(jù)向下移動(dòng),你可能需要在目標(biāo)位置處插入空行。為了將3行向上移動(dòng),5行向下移動(dòng),首先臨時(shí)復(fù)制五行數(shù)據(jù),然后將3行數(shù)據(jù)向上移動(dòng)到它們的目標(biāo)位置,然后再將復(fù)制的五行分配到正確的位置。 下面的代碼完成上述操作:
交換表單中的數(shù)據(jù)你可以交換兩個(gè)單元格或兩個(gè)單元格區(qū)域的內(nèi)容。 當(dāng)你交換兩個(gè)單元格或兩個(gè)單元格區(qū)域的數(shù)據(jù)時(shí),單元格的設(shè)置也會(huì)隨著數(shù)據(jù)一起交換。如果你所做的設(shè)置是針對(duì)包含單元格的整個(gè)列或行或整個(gè)表單,而不是針對(duì)單元格自身所做的設(shè)置,那么這些設(shè)置不會(huì)被交換。例如,如果你將源單元格的背景色設(shè)置為紅色,那么背景色能夠被交換過去,目標(biāo)單元格的背景色就變成了紅色。然而,如果你將包含源單元格的列的背景色設(shè)置為紅色,那么該設(shè)置不會(huì)被交換。 當(dāng)你把數(shù)據(jù)從一個(gè)單元格交換到另外一個(gè)時(shí),那么一個(gè)單元格中的數(shù)據(jù)就會(huì)變成另外一個(gè)單元格的數(shù)據(jù),反之亦然。例如,如果單元格A1包含值4,單元格B3包含值6,那么當(dāng)你交換這兩個(gè)單元格時(shí),A1單元格的值就會(huì)變成6,B3單元格的值會(huì)變成4。 如果你嘗試將目標(biāo)區(qū)域與一個(gè)比它的可用區(qū)域大的區(qū)域進(jìn)行交換時(shí),交換操作不會(huì)執(zhí)行。例如,如果你想交換一個(gè)含4個(gè)單元格的區(qū)域,而指定目標(biāo)區(qū)域?yàn)楸韱芜吔绲囊粋€(gè)單元格時(shí),那么交換操作不會(huì)發(fā)生。 如果交換操作要交換有重疊區(qū)域的單元格,那么獨(dú)立的單元格從重疊區(qū)域的轉(zhuǎn)角處開始交換。 這里是一個(gè)交換單元格區(qū)域的代碼示例:
刪除表單中的數(shù)據(jù)你可以刪除所選的單個(gè)單元格或多個(gè)單元格或一個(gè)單元格區(qū)域中的數(shù)據(jù)以及單元格格式,或只刪除數(shù)據(jù),保留單元格的格式。想了解更多有關(guān)單元格格式的信息,請(qǐng)參考理解單元格類型如何顯示數(shù)據(jù)。你可以使用任意一個(gè)清除方法或使用剪貼板的剪切數(shù)據(jù)操作來刪除數(shù)據(jù)。 你可以使用默認(rèn)數(shù)據(jù)模型中任意一個(gè)清除方法來刪除數(shù)據(jù):
如果你使用ClearRange方法,并將dataOnly參數(shù)設(shè)置為true,該方法會(huì)清除公式,單元格注釋,以及該區(qū)域單元格中的文本; 換句話說,它會(huì)清除數(shù)據(jù)模型中與這些單元格相關(guān)的所有信息。 你可以使用range接口中的IRangeSupport.Clear方法來刪除一個(gè)單元格區(qū)域的內(nèi)容。
Spread for Windows Forms 5.0 中文版下載地址 附:Spread for Windows Forms高級(jí)主題系列文章 Spread for Windows Forms高級(jí)主題(1)---底層模型 Spread for Windows Forms高級(jí)主題(2)---理解單元格類型 Spread for Windows Forms高級(jí)主題(3)---理解單元格的編輯模式 |
|
|