小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Spread for Windows Forms高級(jí)主題(5)

 心靈窗畔 2015-05-30

使用表單的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ù)的方法。




































數(shù)據(jù)描述



單元格數(shù)目



方法名



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



單個(gè)單元格



GetText


SetText


 

單元格區(qū)域



GetClip


SetClip



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



單個(gè)單元格



GetValue


SetValue


 

單元格區(qū)域



GetClipValue


SetClipValue



具有格式的數(shù)據(jù)對(duì)象



單元格區(qū)域



GetArray


SetArray



當(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ū)域中:


// 添加數(shù)據(jù)到A1至C3單元格.
fpSpread1.Sheets[0].SetClip(0, 0, 3, 3,"Sunday\tMonday\tTuesday\r\nWednesday\tThursday\tFriday\r\nSaturday\tSunday\tMonday");

 


填充區(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ù)有:



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

  • 要復(fù)制區(qū)域的行數(shù)和列數(shù)

  • 將選定區(qū)域復(fù)制到的行數(shù)(當(dāng)向左或右時(shí))或列數(shù)(當(dāng)向上或下時(shí))(不是復(fù)制操作的重復(fù)次數(shù);而是行或列的數(shù)目)。


image


例如,使用下面的代碼,你可以實(shí)現(xiàn)上圖所示的結(jié)果。


// 定義需要反復(fù)填充區(qū)域的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;
// 用兩行一列的內(nèi)容填充右邊的3列區(qū)域
fpSpread1.ActiveSheet.FillRange(0, 1, 2, 1, 3, FillDirection.Right);
// 用兩行兩列的內(nèi)容填充下邊的4行區(qū)域
fpSpread1.ActiveSheet.FillRange(0, 0, 2, 2, 4, FillDirection.Down);

復(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ù)制的五行分配到正確的位置。


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


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));

交換表單中的數(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ū)域的代碼示例:


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);
}

刪除表單中的數(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ù):



  • Clear方法,刪除數(shù)據(jù)和公式。

  • ClearFormulas方法,只刪除公式。

  • ClearData方法,只刪除數(shù)據(jù)。

  • ClearCustomNames方法,清除自定義名稱;以及ClearCustomFunctions方法,清除自定義函數(shù)。

  • ClearRange方法,清除單元格區(qū)域中的數(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)---理解單元格的編輯模式


Spread for Windows Forms高級(jí)主題(4)---自定義用戶交互

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多