我在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”);
如果可以的话,把你的文件贴上来,我们会立刻检查。
感谢回答。
不好意思,是我理解错了。我开始以为这个GetLinkedCell是取图形的超链接信息。
现在没问题了。
非常感谢!
@Amjad_Sahi
非常感谢。
但我现在遇到了新的问题。
如果我往工作表中插入一张图片,并设置图片的单元格信息。但是我使用GetLinkedCell却取不到图片的单元格信息(Nothing)。
不知道在您的环境中是否能取到?
感谢您提供模板 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);
}
@Amjad_Sahi
非常感谢!