【问题标题】:LinqToExcel get hyperlink valueLinqToExcel 获取超链接值
【发布时间】:2017-07-22 08:18:33
【问题描述】:

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

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”)设置为变量电子邮件?

谢谢

【问题讨论】:

    标签: c# excel linq-to-excel


    【解决方案1】:

    当您以编程方式将内容添加到工作表时,Excel 应用程序不会自动编辑单元格以设置格式并添加超链接(就像您手动输入单元格时一样)。

    我不确定 LinqToExcel 是否有添加超链接的选项,但您可以考虑使用 EPPlus,这里是链接: 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");
    

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

    【讨论】:

      猜你喜欢
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多