2019独角兽企业重金招聘Python工程师标准>>>

使用表单的API处理数据

你可以将数据以有格式或无格式字符串或者数据对象的形式填充到单元格中。将数据填充到单元格的最好方式取决于你想添加字符串数据还是数据对象,以及你想添加数据到单一的单元格还是某个范围内的所有单元格。

举例来说,如果你使用的数据来自用户的文本框中,你可能想要添加由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); } 删除表单中的数据

你可以删除所选的单个单元格或多个单元格或一个单元格区域中的数据以及单元格格式,或只删除数据,保留单元格的格式。想了解更多有关单元格格式的信息,请参考理解单元格类型如何显示数据。你可以使用任意一个清除方法或使用剪贴板的剪切数据操作来删除数据。

你可以使用默认数据模型中任意一个清除方法来删除数据:

  • Clear方法,删除数据和公式。

  • ClearFormulas方法,只删除公式。

  • ClearData方法,只删除数据。

  • ClearCustomNames方法,清除自定义名称;以及ClearCustomFunctions方法,清除自定义函数。

  • ClearRange方法,清除单元格区域中的数据,公式,注释以及格式。

如果你使用ClearRange方法,并将dataOnly参数设置为true,该方法会清除公式,单元格注释,以及该区域单元格中的文本; 换句话说,它会清除数据模型中与这些单元格相关的所有信息。

你可以使用range接口中的IRangeSupport.Clear方法来删除一个单元格区域的内容。

Spread for Windows Forms 5.0 中文版下载地址

附:Spread for Windows Forms高级主题系列文章

Spread for Windows Forms高级主题(1)---底层模型

Spread for Windows Forms高级主题(2)---理解单元格类型

Spread for Windows Forms高级主题(3)---理解单元格的编辑模式

Spread for Windows Forms高级主题(4)---自定义用户交互

本文出自 “葡萄城控件博客” 博客,请务必保留此出处http://powertoolsteam.blog.51cto.com/2369428/642329

转载于:https://my.oschina.net/powertoolsteam/blog/278332

Spread for Windows Forms高级主题(5)---数据处理相关推荐

  1. Spread for Windows Forms高级主题(7)---自定义打印的外观

    2019独角兽企业重金招聘Python工程师标准>>> 表单打印的多个部分都可以进行自定义,大多数的自定义选项存在于PrintInfo对象中.大多数打印选项是在PrintInfo对象 ...

  2. Spread for Windows Forms高级主题(6)---数据绑定管理

    自定义列和区域的数据绑定 当表单被绑定到一个数据集时,表单中的列就会相继的被分配到数据集的区域上.例如,第一个数据域分配给列A,第二个数据区域分配给列B,等等.你也可以改变分配顺序,将任意域分配给任意 ...

  3. Spread for Windows Forms高级主题(3)---单元格的编辑模式

    理解单元格的编辑模式 通常情况下,当终端用户双击单元格时,编辑控件将允许用户在该单元格中输入内容.在一个单元格中编辑的能力被称为编辑模式.一些属性和方法可以用来自定义编辑模式的使用. 当一个单元格处于 ...

  4. Spread for Windows Forms高级主题(4)---自定义用户交互

    你可以从多方面自定义用户界面来自定义用户与Spread控件的交互方式.同时,你还可以自定义如何处理用户交互方式. 设置允许用户进行的操作 下面的列表总结了通过控件的数据区域,你可以授权用户进行的操作( ...

  5. farpoint支持python_FarPoint Spread for Windows Forms

    Spread是.NET平台上功能较为强大的表格控件,可以支持多种数据库的数据,提供能满足各行业需求的328种计算公式,并且对Excel各版本的文件格式有很好的兼容性.从COM版本开始,Spread一直 ...

  6. Spread for Windows Forms快速入门(2)---设置Spread表单

    让我们从设置Spread的大小和表单的外观开始学习如何定制Spread,这些操作通常放在Form的构造函数中进行,在InitializeComponent()之后调用. 自定义控件的大小 你可以设置S ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 表格控件 Spread for WinForms 表格控件兼容Excel的强大功能,并将其嵌入到您的应用系统中.完备的Exce ...

  8. Spread for Windows Forms快速入门(10)---绑定到数据库

    下面的教程将带你创建一个工程, 并将Spread控件绑定到一个数据库. 在这个教程中,主要的步骤为: 1. 将Spread添加到一个数据绑定工程中 2. 设置数据库连接 3. 指定要使用的数据 4. ...

  9. Spread for Windows Forms快速入门(1)---开始使用Spread

    2019独角兽企业重金招聘Python工程师标准>>> 前言 Spread for Windows Forms是功能最为强大的表格控件,拥有灵活开放的对象模型和50,000个以上的A ...

最新文章

  1. Guava学习笔记:缘起
  2. linux环境中,查询网卡的速度(带宽)
  3. React中使用setState
  4. 【攻防世界016】re2-cpp-is-awesome
  5. JavaScript --- 表单focus,blur,change事件的实现
  6. Linux断点方法,一种基于Linux问题断点的定位方法及系统与流程
  7. Freeswitch NAT问题
  8. Scala Case
  9. 特斯拉、华为等竞争升级,国产芯片实现突破,自动驾驶过去这一年
  10. 2018蚂蚁金服NLP用户意图的精准识别,复赛f1 = 0.7327
  11. linux下mysql5.7环境
  12. Anaconda下载及安装详细教程(图文)
  13. Android开发工程师文集-提示框,菜单,数据存储,组件篇
  14. break 和continue 区别以及用法。
  15. 无服务器搭建Artalk评论系统后端
  16. 计算pi小数点后10000位
  17. 学计算机颈椎痛,近九成电脑族曾颈椎疼痛,怎么办?
  18. HMI-51-【多媒体】搞地图 1
  19. 计算机论文专著 论文集,学习计算机方面论文参考文献 学习计算机专著类参考文献有哪些...
  20. VM虚拟机:VMware Kernel Module Updater

热门文章

  1. [转]linux解压 tar命令
  2. 在PHP中创建和编辑Excel电子表格
  3. (转) Weblogic 12c 集群部署和session复制
  4. monkey自定义脚本实践
  5. 海外web平台访问速度慢的原因之一
  6. I.MX6 修改调试串口号(ttymx0 - ttymxc2)
  7. Java性能优化:正确的解析JSON文件
  8. 转贴:cg(c for graphic)编程语言
  9. OSS控制台集成将数据库实时备份到OSS的功能
  10. 传微软有意收购EA公司,连《绝地求生》的蓝洞也想一并收入囊中