LinqToExcel 获取超链接值

LinqToExcel get hyperlink value

我正在使用 LinqToExcel 读取 excel 文件。一切正常,但单元格的内容是一个超链接,我只得到超链接文本。我想得到它的 URL/email.

try
{
    // Connection to the DB
    iRentDB db = new iRentDB();

    // Get excel file and work sheet
    string pathToExcelFile = @"Members_Export_1500068180.xls";
    string sheetName = "Members_Export_1500068180";

    var excelFile = new LinqToExcel.ExcelQueryFactory(pathToExcelFile);

    // Select all rows from Excel
    var rows = from c in excelFile.WorksheetNoHeader(sheetName)
               select c;
    foreach (var row in rows)
    {
        // Get and validate the email
        var email = row[8].Value.ToString();
    }
}catch (Exception any)
{
    Console.Write(any.ToString());
}

我正在阅读的单元格是一个超链接。单元格内容名称为 "Email",超链接值为 test@test.com。 在我的 C# 代码中,变量 email = "Email"。如何将超链接值 ("test@test.com") 设置为变量 email?

谢谢

当您以编程方式向工作表添加内容时,excel 应用程序不会自动编辑单元格以设置格式并添加 hyperlink(就像您在单元格中手动输入一样)。

我不确定 LinqToExcel 是否有添加 Hyperlink 的选项,但您可以考虑使用 EPPlus,这是 link: How to create a link inside a cell using EPPlus.

使用 EPPlus,您几乎可以用 excel 做任何事情,就像 Microsoft.Office.Interop.Excel 一样,它主要用于桌面应用程序(Interop 示例):

    Excel.Worksheet ws;        
    ws.Hyperlinks.Add(ws.Cells[5,8], "test@test.com");
    ws.Hyperlinks.Add(ws.Range["B4"], "test2@anothertest.com");

我知道这不是您要找的答案,但我的意思是 hyperlinks 不会自动添加。