2017-02-13 95 views
0

我试图将超链接添加到形状,但在执行它越来越错误。如何使用c#添加超链接到excel形状?

Exception from HRESULT: 0x800A03EC

我创建了一个Shape,然后我为超链接指定了一个地址,但没有成功。请在C#中运行。代码没有链接工作。请看下面的代码:

InteropExcel.Range r = (InteropExcel.Range)iWS.Cells[rownum, currCol]; 
InteropExcel.Shape sh = (InteropExcel.Shape)iWS.Shapes.AddShape(MsoAutoShapeType.msoShape4pointStar, Convert.ToSingle(r.Left), Convert.ToSingle(r.Top), 20, 20); 

sh.Hyperlink.Address = "c:\\test.txt"; 
+0

*“但在执行它越来越错误” *您可能希望包含在错误消息的题。 –

+0

在[这个参考](https://support.office.com/en-us/article/HYPERLINK-function-333C7CE6-C5AE-4164-9C47-7DE9B76F577F)(可能与):*“HYPERLINK函数是有效的网页地址(URL)唯一。link_location可以是包含在引号中的文本字符串或一个小区的参考包含链接作为一个文本串。 如果在link_location指定的跳转不存在或不能被导航,则显示错误当您单击单元格“* –

+0

曼弗雷德我得到这个错误,错误:从HRESULT异常:0x800A03EC。我甚至尝试使用网址但结果相同。我想知道我是否可以在C#上编程。 –

回答

0

下面的代码显示了如何将链接添加到excel形状:

InteropExcel.Range rshx = (InteropExcel.Range)iWS.Cells[rownum, currCol]; 

InteropExcel.Shape shxr = (InteropExcel.Shape)iWS.Shapes 
    .AddShape(MsoAutoShapeType.msoShapeDiamond, 
     Convert.ToSingle(rshx.Left), Convert.ToSingle(rshx.Top), 20, 20); 

Release(rshx); 

shxr.ShapeStyle = MsoShapeStyleIndex.msoShapeStylePreset31; 

iWS.Hyperlinks.Add(shxr, linkurl); 
Release(shxr);