找回密码
 立即注册

QQ登录

只需一步,快速开始

ruby

超级版主

121

主题

151

帖子

1016

积分

超级版主

Rank: 8Rank: 8

积分
1016

活字格认证

[已处理] Spread 相关问题

ruby
超级版主   /  发表于:2014-9-23 09:53  /   查看:4414  /  回复:1
1. 除了导入Excel表格外,是否支持从外部Excel表格中复制粘贴到Spread表格,或从Spread表格中复制粘贴到外部的Excel表格(包括数值和公式)。

2.当用户在Spread表格中用鼠标拉出一块区域时,WinForm自动响应该事件,并能在事件响应代码中取到该区域每一个单元格的数值。

3.我开发的项目需要从外部导入一个格式不一定规范的Excel表,然后定义表中某行或某列的数据类型,然后自动从表中取数。比如定义某一行为表头行(就是诸如日期、姓名、金额…这样的纯文字行)、定义某列为日期列,定义某列为姓名列等等。我需要实现的做法是从窗体工具栏中点击一个表示该数据类型的按钮,然后按住不放托到Spread表中的某行首或某列首,就完成了定义。比如按住表示表头行的按钮不放,把它拖到Spread表中某行的行首(表的边框上那个带行号的格子),该行就被标记为表头行。同样按住表示姓名列的按钮,把它拖到Spread表中某列的列首,该列就被标记为姓名列。所有定义完成后,系统就能识别这张表的格式,然后自动从表中取数。
实现上述功能需要表格的行首或列首具备响应拖动事件的功能,并能记住用户对它做的标记。不知道Spread表格是否有这样的功能。

1 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-9-23 14:24:00
沙发
回复 1楼ruby的帖子

问题1,目前可以粘贴数据,无法粘贴格式和公式。
问题2,可以通过 SelectChanged 事件来实现,请使用以下代码获取:

  1.         public Form1()
  2.         {
  3.             InitializeComponent();
  4.             this.fpSpread1.SelectionChanged += fpSpread1_SelectionChanged;
  5.         }

  6.         void fpSpread1_SelectionChanged(object sender, FarPoint.Win.Spread.SelectionChangedEventArgs e)
  7.         {
  8.             CellRange cr = e.Range;
  9.             for (int i = 0; i < cr.RowCount; i++)
  10.             {
  11.                 for (int j = 0; j < cr.ColumnCount; j++)
  12.                 {
  13.                     string celltext = this.fpSpread1.ActiveSheet.Cells[i, j].Text;
  14.                 }
  15.             }
  16.         }
复制代码


3.该问题可以实现,可以通过 Spread 的 DragDrop 事件进行响应。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部