1. 程式人生 > >Spread for Windows Forms快速入門(4)---常用的單元格型別(上)

Spread for Windows Forms快速入門(4)---常用的單元格型別(上)

單元格型別定義了在單元格中呈現的資訊的型別,以及這種資訊如何顯示,使用者如何與其進行互動。單元格型別可以被賦給單個的單元格,整行或者整列。

使用者可以使用兩種不同的單元格型別對錶單中的單元格進行設定: 一種是可以簡單地關聯於單元格的文字格式,另一種就是顯示控制元件或者圖形化資訊。我們在本篇介紹常用的文字單元格型別,下一篇介紹常用的圖形單元格型別。

對於表單中的單元格而言,通用單元格是預設的單元格型別。 除非你指定了其他的單元格型別,控制元件通常會預設將通用單元格型別賦給單元格。通用單元格可以被用來作為鍵入文字或數字的單元格,在這裡格式並不重要或者這裡的資料型別不依賴於特定的資料型別。

下面的示例將一個單元格設為一個通用單元格。

FarPoint.Win.Spread.CellType.GeneralCellType gnrlcell = new FarPoint.Win.Spread.CellType.GeneralCellType();

fpSpread1.ActiveSheet.Cells[1, 1].CellType = gnrlcell;

文字單元格TextCellType

文字單元格是最常用的單元格型別之一,用於顯示文字或者將單元格內容當作文字顯示。你也可以指定是否所有文字都以小寫形式,大寫格式,或者普通的CharacterCasing屬性格式顯示。CharacterSet屬性授權你指定文字為僅數字,僅字母,數字和字母,或者任何ASCII字元。

通過程式碼設定文字單元格的基本步驟和示例程式碼如下:

通過建立一個 TextCellType 類的例項定義一個文字單元格。

設定文字單元格的屬性。

當用戶輸入不可用時建立一個顯示給使用者的資訊。

通過設定一個單元格,單元格範圍,一行,一列,或者樣式的CellType屬性為TextCellType 物件,將文字單元格型別賦給一個單元格或者一組單元格。

tcell.CharacterCasing = CharacterCasing.Upper;

tcell.CharacterSet = FarPoint.Win.Spread.CellType.CharacterSet.Ascii;

tcell.MaxLength = 30;

tcell.Multiline = true;

fpSpread1.ActiveSheet.Cells[0, 0].Text = "This is a text cell. ";

fpSpread1.ActiveSheet.Cells[0, 0].CellType = tcell;

數字單元格NumberCellType

你可以使用一個數字單元格NumberCellType用以顯示一個十進位制的數字,整數或者小數,下面的主題涉及了數字單元格的格式化以及計算的主要內容。

設定精度

典型的情況是,數字使用雙精度浮點數進行計算和儲存,這樣精度大約在15個數位左右。 單元格可以根據需求格式化為不同的小數位數。 例如,下列的程式碼可以計算單元格區域A1到A5的區域的值的總和,並且將結果顯示在A6單元格中 儲存在A6單元格中的數值將會有足夠的精確度(達到了雙精度浮點數的上限),但是顯示在A6單元格中的文字將會取為其最近的一位小數的值。

NumberCellType nmbcell = new NumberCellType();

nmbcell.DecimalPlaces = 1;

fpSpread.Sheets[0].Cells[5,0].CellType = ct; fpSpread.Sheets[0].Cells[5,0].Formula = "SUM(A1:A5)";

格式化若干數字

你可以自定義數字單元格的顯示方式,就像這張屬性表中總結的那樣,顯示為一個整數或者有若干格式化特定的小數。下面的示例給出了這些屬性的使用方法。

屬性

描述

對定點數的顯示來說,在數字的小數部分設定是否將零顯示為佔位符。

MinimumValue

獲取或設定使用者可以輸入的最小值。

如果數字不符合顯示的寬度,獲取和設定替換資料的顯示字元。

Separator

獲取或設定用於分割千以上的數值的字元。

ShowSeparator

獲取或設定是否顯示千位分隔符。

下面的示例通過使用預先定義的格式化屬性指派 NumberCellType 物件,對某個單元格設定成為具有某種格式的數字單元格。

nmbrcell.DecimalSeparator = ",";

nmbrcell.DecimalPlaces = 5;

nmbrcell.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;

nmbrcell.MaximumValue = 500.000;

nmbrcell.MinimumValue = -10.000;

fpSpread1.ActiveSheet.Cells[1, 1].CellType = nmbrcell;

顯示分數

數字單元格可以以分數格式顯示數值,所以0.01可以顯示為1/100。設定數字單元格的FractionMode屬性以便以分數格式顯示數值。你可以向一個單元格中鍵入0.01或者你可以鍵入1/100。兩種情況都會顯示為1/100。你可以使用FractionDenominatorPrecision列舉型別(例如要將分數顯示為若干個四分之一,1/4等等)或者使用FractionDenominatorDigits屬性設定分母的位數。下面這張表列出了所有與數字單元格相關的分數屬性。

屬性

描述

FractionMode

設定是否將數值顯示為分數。

使用自定義的格式設定數值如何顯示。要使用自定義的格式,請設定FractionDenominatorPrecision以便於自定義。

FractionRenderOnly

當資料顯示為分數時,設定是否允許分數處於編輯模式。

frac.FractionMode = true;

frac.FractionDenominatorPrecision = FarPoint.Win.Spread.CellType.FractionDenominatorPrecision.Custom;

frac.FractionDenominatorDigits = 3;

fpSpread1.ActiveSheet.Columns[0].CellType = frac;

fpSpread1.ActiveSheet.Columns[1].CellType = frac;

fpSpread1.ActiveSheet.Cells[0, 0].Value = 5.01;

另外一種設定分數顯示的方法是(使用FractionCustomFormat屬性)設定自定義格式設定一個數值。預設的值是“# ???/???”其中格式為一個整數(#)伴隨著一個三位的分數 ( / )。 斜槓後面的問號決定了分母的數位(可以有一到十五位的精度,因為15位的精度是最大的)。自定義格式,你也可以 指定分母,比如“# ???/100”或者“# ??/64”。如果FractionConvertWholeNumber被設定為真,那麼就不會顯示為整數部分並且 整個數字顯示為一個分數。

這個示例設定一個單元格以分數形式顯示資料,值5.01的顯示結果為5 1/100:

使用Spin按鈕

預設情況下,Spin按鈕不顯示,但是你可以在單元格處於編輯模式時在單元格內部顯示Spin按鈕。 你可以使用以單詞“Spin”開頭的NumberCellType的若干屬性設定各種不同的Spin函式。

百分比單元格PercentCellType

你可以使用一個百分比單元格以便將資料顯示為百分數並且限制輸入為百分數的值。預設情況下,在一個百分比單元格中,如果你在執行狀態雙擊處於編輯模式下的單元格,就會彈出一個計算器。你可以指定顯示在確定鍵和取消鍵上的文字資訊。

下面的示例將一個單元格設定成為一個百分數單元格並且顯示了一個簡寫(PRCNT)而不是百分號(%)。

FarPoint.Win.Spread.CellType.PercentCellType prctcell = new FarPoint.Win.Spread.CellType.PercentCellType();

prctcell.PercentSign = "PRCNT";

prctcell.PositiveFormat = FarPoint.Win.Spread.CellType.PercentPositiveFormat.PercentSignBeforeWithSpace;

fpSpread1.ActiveSheet.Cells[1, 1].CellType = prctcell;

預設情況下,Spin按鈕不顯示,但是當單元格處於編輯模式時,你可以使用單元格內部的Spin按鈕。 你可以使用以單詞“Spin”開頭的PercentCellType的若干屬性設定各種不同的微調函式。

日期時間單元格DateTimeCellType

你可以設定一個單元格用於顯示日期和時間,也可以指定要顯示的日期和時間的格式。

在Windows環境中,預設值使用區域化的設定或者區域化的選項。你可以使用幾種屬性指定其格式。如果一個日期時間單元格顯示的日期和時間使用長日期和時間格式,並且當前日期和時間是“10/29/2002 11:10:01”,文字屬性返回“週二,十月,29日,2002年 11:10:01 上午”。值屬性返回所述的日期時間的物件。

預設情況下,在日期時間單元格中,如果你在執行時雙擊處於編輯狀態下的單元格,就會彈出一個日曆(或者時鐘)。你可以決定是否顯示這些,並且你可以指定顯示在確定和取消按鈕上的文字。

下面的示例程式碼在第二行第二列的單元格中顯示一個短格式的日期和時間:

datecell.DateSeparator = " | ";

datecell.TimeSeparator = ".";

datecell.DateTimeFormat = FarPoint.Win.Spread.CellType.DateTimeFormat.ShortDateWithTime;

fpSpread1.ActiveSheet.Columns[1].Width = 175;

fpSpread1.ActiveSheet.Cells[1, 1].CellType = datecell;

fpSpread1.ActiveSheet.Cells[1, 1].Value = System.DateTime.Now;

貨幣單元格CurrencyCellType

你可以使用貨幣單元格設定一個單元格用以顯示貨幣的值。一個貨幣單元格顯示了數字化的貨幣值,使用了一種你可以進行自定義的貨幣符號,分隔符等的格式,包括:

貨幣符號(並且決定是否顯示)

分隔符(並且決定是否顯示)

十進位制符號

是否顯示一個主導的零

正數指示器(並且決定是否顯示它)

負數指示器(並且決定是否顯示它)

預設情況下,在貨幣單元格中,如果你在執行時雙擊處於編輯狀態的單元格,就會顯示一個彈出的計算器。你可以決定是否允許他顯示,並且你可以指定顯示在“確定”和“取消”按鈕上的文字資訊。 你還可以設定可以輸入的最小和最大值, 以便使用者對其輸入進行驗證。

下面的示例程式碼設定了一個美元的貨幣單元格並設定了一定的格式:

在預設情況下,Spin微調按鈕是不顯示的,但是你可以在單元格的邊上顯示微調按鈕(此時單元格處於編輯模式)。你可以使用以字元Spin開頭的CurrencyCellType屬性設定不同的微調函式。

附:Spread for Windows Forms快速入門系列文章

相關推薦

Spread for Windows Forms快速入門(4)---常用單元型別

單元格型別定義了在單元格中呈現的資訊的型別,以及這種資訊如何顯示,使用者如何與其進行互動。單元格型別可以被賦給單個的單元格,整行或者整列。 使用者可以使用兩種不同的單元格型別對錶單中的單元格進行設定: 一種是可以簡單地關聯於單元格的文字格式,另一種就是顯示控制元件或者圖形化

Spread for Windows Forms快速入門(1)---開始使用Spread

前言 Spread for Windows Forms是功能最為強大的表格控制元件,擁有靈活開放的物件模型和50,000個以上的API,使得開發人員幾乎可以定製所有的元素和介面。但另一方面,因為Spread的介面非常多,也有一些開發人員反映Spread的入門不太容易。希望我們編寫的“快速入門”系列文章,能夠

Spread for Windows Forms快速入門(3)---行列操作

開發人員可以定義使用者與行和列的互動,如是否可以更改行或列的大小、是否可以移動行或列、凍結指定的行或列、在行或列中查詢資料等。 更改行或列的大小 你可以允許使用者重新調整表單中行或列的大小。 設定行的Resizable屬性以允許使用者重置行的大小,設定列的Resizable屬性以允許使用者重置列的大小。使用

Spread for Windows Forms 7新功能使用指南

表格控制元件 Spread for WinForms 表格控制元件相容Excel的強大功能,並將其嵌入到您的應用系統中。完備的Excel文件支援使得您可以在企業中分享和訪問資料資訊;內嵌的圖表引擎和資

ArcGIS API for JavaScript3.x 學習筆記[4] 加載底圖【Open Street Map開放街道地圖】

asc 裏的 指定 訪問 utf-8 gis sca utf 同方 Open Street Map OpenStreetMap(簡稱OSM,中文是開放街道地圖)是一個網上地圖協作計劃,目標是創造一個內容自由且能讓所有人編輯的世界地圖。 OSM是一款由網絡大眾共同打造的免費開

C++快速入門---靜態屬性和靜態方法15

C++快速入門---靜態屬性和靜態方法(15)   靜態屬性和靜態方法 把一個或多個成員宣告為屬於某個類,而不是僅屬於該類的物件。 好處1:程式設計師可以在沒有建立任何物件的情況下呼叫有關的方法。 好處2:能夠讓有關的資料仍在該類的所有物件間共享。  

C++快速入門---覆蓋方法和過載方法13

C++快速入門---覆蓋方法和過載方法(13)   覆蓋方法(overriding) 覆蓋:在基類裡提供一個通用函式,但在它的某個子類裡需要修改這個方法的實現。 子類覆蓋基類的方法。 修改例題,為我們的Animal新增eat()方法,並在Pig和Turtle中覆蓋。

C++快速入門---assert函式和捕獲異常22

C++快速入門---assert函式和捕獲異常(22)   assert()函式,專為除錯而準備的工具函式。 assert()函式需要有一個引數,它將測試這個輸入引數的真 or 假狀態。 #include <iostream> #include <cass

華為IP基礎快速入門-P6-IP路由選擇原理

主機路由172.16.1.1/32,(32位的為主機路由) 172.16.1.0/24(子網路由) 彙總路由上節課講過了,標識一組子網 主類網路號,比如172.16.1.0/24是172.16.0.0/16的子網,16就是24的主類網路號 又比如,10.0.0.0/8是10.1.1.0/

Struts2最新版(2.5.12)快速入門(四) struts2之攔截器Interceptor

一、初識攔截器            1、攔截器原理                    "攔截器"顧名即可思義,它是對ac

【Python學習記錄——從入門到放棄】一、變數和簡單資料型別

本文使用的書籍是《Python程式設計:從入門到實踐》 本文使用的是Python3.6 一、執行hello_world.py 這裡主要是演示了一下print函式的使用,新手主要是在Python版本與print函式上有出入,導致出錯。 還有就是在“中文雙引號”和"英文雙

《Hibernate快速開始》Query /HQL and JPQL

@NamedQueries({//將多個命名查詢附加到相同的實體類需要將它們包裝在@NamedQueries註釋中 @NamedQuery(定義了一個名稱為“get_person_by_name”的查詢 name = "get_person_by_name", //查詢語句 query = "select

第04課:GDB常用命令詳解

本課的核心內容如下:   run命令   continue命令   break命令   backtrace與frame命令   info break、enable、disable和delete命令   list命令   print和ptype命令 為了結合實踐,這裡以除錯Redis原始碼為例來

Mybatis最入門---Mapper檔案配置詳解

[一步是咫尺,一步即天涯] 前文中,我們演示了最基本的HelloWorld程式,下面我們將介紹我們上面各項配置檔案的詳細解釋,以及我們正式開發過程中,各種配置的注意事項等。 慣例,先來看看我們的準備工作有: a.作業系統 :win7 x64 b.基本軟體:MySQ

Spark入門實戰系列--8.Spark MLlib--機器學習及SparkMLlib簡介

半監督學習(Semi-supervised Learning)是介於監督學習與無監督學習之間一種機器學習方式,是模式識別和機器學習領域研究的重點問題。它主要考慮如何利用少量的標註樣本和大量的未標註樣本進行訓練和分類的問題。半監督學習對於減少標註代價,提高學習機器效能具有非常重大的實際意義。主要演算法有五類:基

Go語言常用的併發模式

Confinement 該模式用於處理資料限制問題,類似於生產者和消費者模式。使用channel的方式通過共享資訊的方式進行。有一個協程專門負責生產,另外一個協程負責接收資料。程式碼中使用隨機的時間模擬實際情況中耗時部分。 package main i

Spark入門實戰系列--7.Spark Streaming--實時流計算Spark Streaming原理介紹

【注】該系列文章以及使用到安裝包/測試資料 可以在《》獲取 1、Spark Streaming簡介 1.1 概述 Spark Streaming 是Spark核心API的一個擴充套件,可以實現高吞吐量的、具備容錯機制的實時流資料的處理。支援從多種資料來源獲取資料,包括Kafk、Flume、Twitt

綜述自動駕駛中的計算機視覺Computer Vision for Autonomous Vehicles: Problems, Datasets and State-of-the-Art

17年CVPR上的一篇關於自動駕駛和計算機視覺的綜述,比較全面,大體整理一個提綱,重點關注比較新的研究成果,側重於深度學習方面的。 1. History of Autonomous Driving 自動駕駛的歷史 這一部分介紹了自動駕駛的專案和自

機器學習入門-機器學習的不同型別

轉自:http://iccm.cc/types-of-machine-learning/ 機器學習指的是機器通過學習資料,得到技巧的過程。比如,現在需要讓機器學習病人判斷是否獲病。我們可以從目標整體(population)所有人中抽出用以訓練的樣本(sample

機器學習入門之單變數線性迴歸——梯度下降法

  在統計學中,線性迴歸(英語:linear regression)是利用稱為線性迴歸方程的最小二乘函式對一個或多個自變數和因變數之間關係進行建模的一種迴歸分析。這種函式是一個或多個稱為迴歸係數的模型引數的線性組合。只有一個自變數的情況稱為簡單迴歸,大於一個自變數情況的叫做多元迴歸(multi