2017-07-20 61 views
1

我使用LinqToExcel來讀取Excel文件。一切工作正常,但它的單元格的內容是一個超鏈接,我只得到超鏈接文本。我想獲得它的網址/電子郵件。LinqToExcel獲取超鏈接值

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 protected]。 在我的C#代碼中,變量email =「Email」。如何設置可變電子郵件的超鏈接值(「[email protected]」)?

感謝

回答

1

編程時,你將內容添加到工作表,Excel應用程序不會自動編輯單元格的格式,並添加超鏈接(就像它將如果你手動輸入到單元格)。

我不知道如果LinqToExcel有選擇添加超鏈接,但你可以考慮使用EPPlus,這裏是鏈接: How to create a link inside a cell using EPPlus

隨着EPPlus你幾乎可以做任何事情與Excel,就像對待的Microsoft.Office.Interop.Excel,其主要用於桌面應用程序(與互操作樣品):

Excel.Worksheet ws;   
    ws.Hyperlinks.Add(ws.Cells[5,8], "[email protected]"); 
    ws.Hyperlinks.Add(ws.Range["B4"], "[email protected]"); 

我知道這是不是答案你正在尋找,但我的觀點是,超鏈接不會自動添加。