Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extracting a URL from hyperlinked text in Excel cell

I have a table full of Hyperlinked text in excel, so it's basically a bunch of names but when I click on one, it takes me to some URL in my default browser.

So I am extracting text from this excel table in my program, but the value I get when I extract from these hyperlink cells is that of the string inside, when I want the URL the string is linked to in the excel file.

So I'm thinking there are two ways to do this. Either I can convert all the hyperlinked text in the excel file to the corresponding URLs, or I can use C# to somehow extract the URL value from the cell and not the text.

I don't know how to do either of these things, but any help would be greatly appreciated.

C# code so far:

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();

As for the excel file, it's just one long row of names hyperlinked. For instance cell A2 would contain the text:

Yummy cookie recipe

And I want to extract the string:

http://allrecipes.com//Recipes/desserts/cookies/Main.aspx
like image 353
AJ_ Avatar asked Apr 13 '11 08:04

AJ_


People also ask

How do I convert a hyperlink to regular text in Excel?

Removing hyperlinks in Excel is a two-click process. You simply right-click a link, and select Remove Hyperlink from the context menu. This will remove a clickable hyperlink, but keep the link text in a cell. To delete the link text too, right-click the cell, and then click Clear Contents.

How do I copy a URL into a cell in Excel?

Right-click the hyperlink that you want to copy or move, and then click Copy or Cut on the shortcut menu. Right-click the cell that you want to copy or move the link to, and then click Paste on the shortcut menu.


1 Answers

You could use a vba macro:

Hit Alt+F11 to open the VBA editor and paste in the following:

Function URL(rg As Range) As String
  Dim Hyper As Hyperlink
  Set Hyper = rg.Hyperlinks.Item(1)
  URL = Hyper.Address
End Function

And then you can use it in your Worksheet, like this:

=URL(B4)

like image 180
jeb Avatar answered Oct 19 '22 20:10

jeb