GetLinkedCell为什么取不到值?

我在Excel中添加一个椭圆形,并且为椭圆形添加一个link,指向A1:B3。
我在程序(vb.net)中打开此文件,并想取得椭圆形的link,但是总是返回Nothing。
Dim shape = sheet.Shapes.Item(“椭圆1”)
Dim link = shape.GetLinkedCell(False, False)
link总是Nothing。是我的用法不对吗?
谢谢~

我用以下的代码book1.zip (7.2 KB) ,没有任何问题。
Workbook workbook = new Workbook(dir + “book1.xlsx”);
Shape shape = workbook.Worksheets[0].Shapes[0];
Console.WriteLine(shape.GetLinkedCell(false, false));
workbook.Save(dir + “dest.xls”);

如果可以的话,把你的文件贴上来,我们会立刻检查。

1 Like

感谢回答。
不好意思,是我理解错了。我开始以为这个GetLinkedCell是取图形的超链接信息。
现在没问题了。
非常感谢!

@ztc001,

是的,它将提供与形状相关联的单元格(范围)详细信息。 如果您有任何疑问或意见,请随时与我们联系,我们很乐意尽快为您提供帮助。

@Amjad_Sahi
非常感谢。
但我现在遇到了新的问题。
如果我往工作表中插入一张图片,并设置图片的单元格信息。但是我使用GetLinkedCell却取不到图片的单元格信息(Nothing)。
不知道在您的环境中是否能取到?

@ztc001,

请压缩并附上包含链接单元格图片的 Excel 文件。 我们会尽快检查您的问题。

@Amjad_Sahi
非常感谢!
麻烦您帮我看下附件中J7位置的图片,其linkedCell的信息是否能取到?TEST02.zip (9.7 KB)

@ztc001,

感谢您提供模板 XLSX 文件。

请注意,通过将以下示例代码与您的模板文件一起使用,我能够重现您提到的问题。 我发现 Shape.GetLinkedCell 不提供图片(形状)的单元格信息。
例如
示例代码:

Workbook workbook = new Workbook("e:\\test2\\TEST02.xlsx");
Console.WriteLine(workbook.Worksheets[0].Shapes.Count);//3 - 好的
// 获取图像形状
shape shape = workbook.Worksheets[0].Shapes[2];
Console.WriteLine(shape.GetLinkedCell(false, false));//为空

我已经为您的问题记录了 ID 为“CELLSNET-52384”的票证。 我们会尽快调查。

我们会在有更新后立即通知您。

@ztc001
这个图片文件对应的属性是Picture.Formula.
对于图片请使用以下代码
if(shape.MsoDrawingType == MsoDrawingType.Picture)
{
Console.WriteLine(((Picture)shape).Formula);
}

1 Like

@Amjad_Sahi
非常感谢!

@simon.zhao
太感谢了。
使用此方法确实可以取到对应的单元格信息。

@ztc001,

不客气。 很高兴知道建议的 API 现在可以解决您的问题。