AJ_*_*AJ_ 8 .net c# excel vsto hyperlink
我在excel中有一个充满超链接文本的表,所以它基本上是一堆名字但是当我点击一个时,它会把我带到默认浏览器中的某个URL.
所以我在我的程序中从这个excel表中提取文本,但是当我从这些超链接单元格中提取时得到的值是字符串里面的值,当我想要在excel文件中链接字符串的URL时.
所以我想有两种方法可以做到这一点.我可以将excel文件中的所有超链接文本转换为相应的URL,或者我可以使用C#以某种方式从单元格而不是文本中提取URL值.
我不知道如何做这些事情,但任何帮助将不胜感激.
到目前为止C#代码:
Excel.ApplicationClass excelApp = new Excel.ApplicationClass();
//excelApp.Visible = true;
Excel.Workbook excelWorkbook =
excelApp.Workbooks.Open("C:\\Users\\use\\Desktop\\list.xls",
0, false, 5, "", "",false, Excel.XlPlatform.xlWindows, "",
true, false, 0, true, false, false);
Excel.Sheets excelSheets = excelWorkbook.Worksheets;
string currentSheet = "Sheet1";
Excel.Worksheet xlws = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
string myString = ((Excel.Range)xlws.Cells[2, 1]).Value.ToString();
Run Code Online (Sandbox Code Playgroud)
至于excel文件,它只是一长串的超链接名称.例如,单元格A2将包含文本:
我想提取字符串:
http://allrecipes.com//Recipes/desserts/cookies/Main.aspx
Run Code Online (Sandbox Code Playgroud)
你可以使用vba宏:
按Alt+ F11打开VBA编辑器并粘贴以下内容:
Function URL(rg As Range) As String
Dim Hyper As Hyperlink
Set Hyper = rg.Hyperlinks.Item(1)
URL = Hyper.Address
End Function
Run Code Online (Sandbox Code Playgroud)
然后你可以在你的工作表中使用它,如下所示:
=URL(B4)
小智 7
在您的代码中添加
string myString = ((Excel.Range)xlws.Cells[2, 1]).Cells.Hyperlinks[1].Address;
Run Code Online (Sandbox Code Playgroud)
我显然建议在访问“超链接”属性之前做一些检查。
小智 5
VBA功能:
现在使用获取URL 示例:将返回单元格A1中显示的超链接的URL=GETURL(cell)
=GETURL(A1)
Function GETURL(HyperlinkCell As Range)
GETURL = HyperlinkCell.Hyperlinks(1).Address
End Function
Run Code Online (Sandbox Code Playgroud)