轉帖|其它|編輯:郝浩|2011-08-19 14:13:29.000|閱讀 643 次
概述:你可以將數據以有格式或無格式字符串或者數據對象的形式填充到單元格中。將數據填充到單元格的最好方式取決于你想添加字符串數據還是數據對象,以及你想添加數據到單一的單元格還是某個范圍內的所有單元格。舉例來說,如果你使用的數據來自用戶的文本框中,你可能想要添加由Spread控件解析的字符串數據。如果你想要添加多個值,并想要直接將它們添加到數據模型中,可以以對象的方式添加它們。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
你可以將數據以有格式或無格式字符串或者數據對象的形式填充到單元格中。將數據填充到單元格的最好方式取決于你想添加字符串數據還是數據對象,以及你想添加數據到單一的單元格還是某個范圍內的所有單元格。
舉例來說,如果你使用的數據來自用戶的文本框中,你可能想要添加由Spread控件解析的字符串數據。如果你想要添加多個值,并想要直接將它們添加到數據模型中,可以以對象的方式添加它們。
下表匯總了在表單級別添加數據的方法。
數據描述 | 單元格數目 | 方法名 |
具有格式的字符串(例如"$1,234.56") | 單個單元格 | GetText SetText |
單元格區域 | GetClip SetClip |
|
沒有格式的字符串(例如"1234.45") | 單個單元格 | GetValue SetValue |
單元格區域 | GetClipValue SetClipValue |
|
具有格式的數據對象 | 單元格區域 | GetArray SetArray |
當你使用帶格式的數據時,為單元格設置格式的單元格類型解析數據,并將數據存放在數據模型中。當你使用不帶格式的數據時,數據則直接保存在數據模型中。如果你要把數據添加到直接保存在數據模型的表單中,你可能需要解析這些數據,因為控件沒有進行解析。
為了向控件中添加大量的數據,可以考慮創建和打開現有的文件,如文本文件或Excel格式的文件。你也可以通過保存數據并格式化為一個文本文件,Excel格式文件,或Spread XML文件來恢復數據。
下面的示例代碼將帶格式的數據添加到一個單元格區域中:
// 添加數據到A1至C3單元格. |
fpSpread1.Sheets[0].SetClip(0, 0, 3, 3,"Sunday\tMonday\tTuesday\r\nWednesday\tThursday\tFriday\r\nSaturday\tSunday\tMonday"); |
你可以復制一個單元格區域,并用該單元格區域填充另一個區域內的單元格,可以復制數據及單元格類型等。例如,如果現有一個2行2列的單元格區域,你可以重復向下垂直填充5組2行2列的單元格區域。
使用FillRange方法。該方法使用的參數有:
例如,使用下面的代碼,你可以實現上圖所示的結果。
// 定義需要反復填充區域的Text屬性. |
fpSpread1.ActiveSheet.Cells[0, 0].Text = "A1-text"; |
fpSpread1.ActiveSheet.Cells[0, 1].Text = "A2-text"; |
fpSpread1.ActiveSheet.Cells[1, 0].Text = "B1-text"; |
fpSpread1.ActiveSheet.Cells[1, 1].Text = "B2-text"; |
fpSpread1.ActiveSheet.Cells[0, 0].BackColor = Color.Cyan; |
fpSpread1.ActiveSheet.Cells[0, 0].ForeColor = Color.DarkBlue; |
fpSpread1.ActiveSheet.Cells[0, 1].BackColor = Color.Coral; |
fpSpread1.ActiveSheet.Cells[0, 1].ForeColor = Color.DarkRed; |
// 用兩行一列的內容填充右邊的3列區域 |
fpSpread1.ActiveSheet.FillRange(0, 1, 2, 1, 3, FillDirection.Right); |
// 用兩行兩列的內容填充下邊的4行區域 |
fpSpread1.ActiveSheet.FillRange(0, 0, 2, 2, 4, FillDirection.Down); |
你可以使用表單的Copy方法從單元格復制數據,并粘貼到其他單元格。
當你將數據復制到一個單元格(或一個單元格區域)時,數據會替代目標單元格(單元格區域)中的數據。如果該操作復制了一個單元格區域,并將其粘貼到一個位置重疊的區域,那么所有你要粘貼的單元格的值都會被復制的單元格的值所替代。
你可以指定當單元格或單元格區域被復制時,其中的公式是否自動更新。
你可以使用表單的Move方法 將一個單元格或一個單元格區域的數據移動到另一個單元格或另一個單元格區域。
當你把數據從一個單元格(或一個單元格區域)移動到另一個單元格時(或單元格區域),原單元格(或單元格區域)中的數據就會替代目標單元格(或單元 格區域)中的數據。如果該操作移動了一個單元格區域,并將其移動到一個位置重疊的區域,那么所有你要移動的單元格的值都會被移動的單元格的值所替代。
當單元格或單元格區域被移動時,你可以指定其中的公式是否自動更新。
為了將表單的3行數據向上移動,并將5行數據向下移動,你可能需要在目標位置處插入空行。為了將3行向上移動,5行向下移動,首先臨時復制五行數據,然后將3行數據向上移動到它們的目標位置,然后再將復制的五行分配到正確的位置。
下面的代碼完成上述操作:
FarPoint.Win.Spread.Model.DefaultSheetDataModel dm = new DefaultSheetDataModel(5, this.fpSpread1.Sheets[0].Models.Data.ColumnCount); |
dm.SetArray(0, 0, (this.fpSpread1.Sheets[0].Models.Data as FarPoint.Win.Spread.Model.DefaultSheetDataModel).GetArray(0, 0, 5, 5)); |
dm.RemoveRows(0, 5); |
dm.AddRows(0, 3); |
dm.Move(this.fpSpread1.Sheets[0].Models.Data.RowCount - 4, 0, 0, 0, 3, this.fpSpread1.Sheets[0].Models.Data.ColumnCount); |
dm.RemoveRows(this.fpSpread1.Sheets[0].Models.Data.RowCount -4, 3); |
dm.AddRows(this.fpSpread1.Sheets[0].Models.Data.RowCount, 5); |
dm.SetArray(this.fpSpread1.Sheets[0].Models.Data.RowCount - 6, 0, dm.GetArray(0, 0, 5, this.fpSpread1.Sheets[0].Models.Data.ColumnCount)); |
你可以交換兩個單元格或兩個單元格區域的內容。
當你交換兩個單元格或兩個單元格區域的數據時,單元格的設置也會隨著數據一起交換。如果你所做的設置是針對包含單元格的整個列或行或整個表單,而不 是針對單元格自身所做的設置,那么這些設置不會被交換。例如,如果你將源單元格的背景色設置為紅色,那么背景色能夠被交換過去,目標單元格的背景色就變成 了紅色。然而,如果你將包含源單元格的列的背景色設置為紅色,那么該設置不會被交換。
當你把數據從一個單元格交換到另外一個時,那么一個單元格中的數據就會變成另外一個單元格的數據,反之亦然。例如,如果單元格A1包含值4,單元格B3包含值6,那么當你交換這兩個單元格時,A1單元格的值就會變成6,B3單元格的值會變成4。
如果你嘗試將目標區域與一個比它的可用區域大的區域進行交換時,交換操作不會執行。例如,如果你想交換一個含4個單元格的區域,而指定目標區域為表單邊界的一個單元格時,那么交換操作不會發生。
如果交換操作要交換有重疊區域的單元格,那么獨立的單元格從重疊區域的轉角處開始交換。
這里是一個交換單元格區域的代碼示例:
fpSpread1.ActiveSheet.RowCount = 10; |
fpSpread1.ActiveSheet.ColumnCount = 10; |
private void button1_Click(object sender, System.EventArgs e) |
{ |
fpSpread1.ActiveSheet.SwapRange(0, 0, 3, 0, 3, 3, true); |
} |
你可以刪除所選的單個單元格或多個單元格或一個單元格區域中的數據以及單元格格式,或只刪除數據,保留單元格的格式。想了解更多有關單元格格式的信息,請參考理解單元格類型如何顯示數據。你可以使用任意一個清除方法或使用剪貼板的剪切數據操作來刪除數據。
你可以使用默認數據模型中任意一個清除方法來刪除數據:
如果你使用ClearRange方法,并將dataOnly參數設置為true,該方法會清除公式,單元格注釋,以及該區域單元格中的文本; 換句話說,它會清除數據模型中與這些單元格相關的所有信息。
你可以使用range接口中的IRangeSupport.Clear方法來刪除一個單元格區域的內容。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園