找回密码
 立即注册

QQ登录

只需一步,快速开始

fmyuan2000

注册会员

26

主题

58

帖子

190

积分

注册会员

积分
190

活字格认证元老葡萄

fmyuan2000
注册会员   /  发表于:2015-8-19 10:33  /   查看:9044  /  回复:10
目前我只能通过Name来获取相关的值代码如下:
  1. var shape = fpSpread1.ActiveSheet.GetShape("TextBox 7");
  2.             string str = shape.Text;
复制代码

但是我怎么获取所有的Shape呢?

10 个回复

倒序浏览
rbgongming
论坛元老   /  发表于:2015-8-19 11:05:00
沙发
回复 1楼fmyuan2000的帖子

亲,不是特别理解你的需求,但是你可以参考如下代码,也许对你有帮助。
private void Form1_Load(object sender, System.EventArgs e)
{

   //シェイプオブジェクトを追加します
   FarPoint.Win.Spread.DrawingSpace.ArrowShape a = new FarPoint.Win.Spread.DrawingSpace.ArrowShape();
   a.Name = "shape-a";
   a.SetBounds(10, 10, 60, 60);
   FarPoint.Win.Spread.DrawingSpace.BannerShape b = new FarPoint.Win.Spread.DrawingSpace.BannerShape();
   b.Name = "shape-b";
   b.SetBounds(90, 10, 60, 60);
   FarPoint.Win.Spread.DrawingSpace.BurstShape c = new FarPoint.Win.Spread.DrawingSpace.BurstShape();
   c.Name = "shape-c";
   c.SetBounds(180, 10, 60, 60);
   fpSpread1.ActiveSheet.AddShape(a);
   fpSpread1.ActiveSheet.AddShape(b);
   fpSpread1.ActiveSheet.AddShape(c);

}

private void button1_Click(object sender, System.EventArgs e)
{

   //シート上のシェイプオブジェクト数を取得します
   Console.WriteLine(fpSpread1.ActiveSheet.DrawingContainer.ContainedObjects.Count);

}

private void button2_Click(object sender, System.EventArgs e)
{

   FarPoint.Win.Spread.DrawingSpace.PSShape ps;

   foreach (FarPoint.Win.Spread.DrawingSpace.PSShape obj in fpSpread1.ActiveSheet.DrawingContainer.ContainedObjects)
   {
      //各シェイプ名からGetShapeメソッド呼び出しによってオブジェクトを取得します
      ps = fpSpread1.ActiveSheet.GetShape(((FarPoint.Win.Spread.DrawingSpace.PSShape)(obj)).Name);
      //背景色を変更します
      ps.BackColor = Color.Red;
   }

}

评分

参与人数 1金币 +999 收起 理由
frank.zhang + 999 协助回答问题

查看全部评分

把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
fmyuan2000
注册会员   /  发表于:2015-8-19 16:58:00
板凳
我是想得到所有有shapes,我们有很多Excel 文件里有很多TextBox ,但是名字不一样, 我们想获取里面的值。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-20 10:23:00
地板
回复 3楼fmyuan2000的帖子

您好,
我对您的问题理解是,将excel导入到spread,取到所有TextBox的名称和值?
如果理解的不正确,希望您能够补充。
另外,您是否方便提供一个excel模板呢?
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-31 18:06:00
5#
您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决?

如果没有解决,欢迎跟贴接续讨论,如果已经解决请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
fmyuan2000
注册会员   /  发表于:2015-9-14 16:13:00
6#
回复 4楼frank.zhang的帖子

是的。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-9-14 17:41:00
7#
您好,
您方便提供一个excel模板吗?以方便我们重现问题。
回复 使用道具 举报
fmyuan2000
注册会员   /  发表于:2015-11-19 13:27:00
8#
test.zip (6.56 KB, 下载次数: 554)
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-11-19 17:06:00
9#
您好,

加载excel
  1.         private void Form3_Load(object sender, EventArgs e)
  2.         {
  3.             string f;
  4.             //f = "D:\\zbs.xlsx";
  5.             f = "test.xlsx";
  6.             System.IO.FileStream s = new System.IO.FileStream(f, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite);
  7.             fpSpread1.OpenExcel(s);
  8.         }
复制代码


取到shape的集合做处理
  1.         private void button2_Click(object sender, EventArgs e)
  2.         {
  3.              FarPoint.Win.Spread.DrawingSpace.PSShape ps;
  4.              String s1 = "";
  5.             foreach (FarPoint.Win.Spread.DrawingSpace.PSShape obj in this.fpSpread1.ActiveSheet.DrawingContainer.ContainedObjects)
  6.             {
  7.                 ps = fpSpread1.ActiveSheet.GetShape(((FarPoint.Win.Spread.DrawingSpace.PSShape)(obj)).Name);
  8.                 ps.BackColor = Color.Red;
  9.                  s1 += ps.Text;
  10.             }
  11.             MessageBox.Show(s1);
  12.         }
复制代码
回复 使用道具 举报
fmyuan2000
注册会员   /  发表于:2015-12-29 14:28:00
10#
回复 9楼frank.zhang的帖子

麻烦问下,可以确定图形在哪一个Cell上么?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部