2017-02-13 99 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);