2009-08-26 39 views

Trả lời

7

gì bạn muốn sử dụng ở đây là phương pháp Hyperlinks.Add.

Bạn có thể gọi nó với mã mà trông giống như sau:

Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1]; 
Excel.Range rangeToHoldHyperlink = worksheet.get_Range("A1", Type.Missing); 
string hyperlinkTargetAddress = "Sheet2!A1"; 

worksheet.Hyperlinks.Add(
    rangeToHoldHyperlink, 
    string.Empty, 
    hyperlinkTargetAddress, 
    "Screen Tip Text", 
    "Hyperlink Title"); 

Dưới đây là một ví dụ tự động hóa đầy đủ mà bạn có thể kiểm tra:

void AutomateExcel() 
{ 
    Excel.Application excelApp = new Excel.Application(); 
    excelApp.Visible = true; 

    Excel.Workbook workbook = excelApp.Workbooks.Add(Type.Missing); 
    workbook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing); 
    workbook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

    Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1]; 
    Excel.Range rangeToHoldHyperlink = worksheet.get_Range("A1", Type.Missing); 
    string hyperlinkTargetAddress = "Sheet2!A1"; 

    worksheet.Hyperlinks.Add(
     rangeToHoldHyperlink, 
     string.Empty, 
     hyperlinkTargetAddress, 
     "Screen Tip Text", 
     "Hyperlink Title"); 

    MessageBox.Show("Ready to clean up?"); 

    // Cleanup: 
    GC.Collect(); 
    GC.WaitForPendingFinalizers(); 
    GC.Collect(); 
    GC.WaitForPendingFinalizers(); 

    Marshal.FinalReleaseComObject(range); 

    Marshal.FinalReleaseComObject(worksheet); 

    workbook.Close(false, Type.Missing, Type.Missing); 
    Marshal.FinalReleaseComObject(workbook); 

    excelApp.Quit(); 
    Marshal.FinalReleaseComObject(excelApp); 
} 

Hope this helps!

Mike

+0

Tôi đã sử dụng tham số địa chỉ thay vì địa chỉ con ... cái đầu tiên không hoạt động. – TimothyP

+0

Điểm mấu chốt mà tôi đã bỏ lỡ là ô được trỏ tới bởi siêu liên kết đi vào địa chỉ con. Tôi đã cố gắng để đặt nó trong địa chỉ –

2

tôi làm điều đó như vậy:

 Excel.Application xlApp; 
     Excel.Workbook xlWorkBook; 
     Excel.Worksheet xlWorkSheet; 
     xlApp = new Excel.ApplicationClass(); 
     xlWorkBook = xlApp.Workbooks.Add(System.Reflection.Missing.Value); 
     xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 
     Excel.Hyperlink link = 
      (Excel.Hyperlink) 
      xlWorkSheet.Hyperlinks.Add(xlWorkSheet.get_Range("L500", Type.Missing), "#Sheet1!B1", Type.Missing, 
             "Go top", 
             "UP"); 

     xlWorkSheet.Hyperlinks.Add(xlWorkSheet.get_Range("C5", Type.Missing), "www.google.com", Type.Missing, "Click me to go to Google ","Google.com");              
     xlApp.Visible = true; 

Điều quan trọng là để chèn các ký hiệu # trong liên kết dẫn đến một tế bào bên trong cuốn sách, nếu biểu tượng này không được đưa vào, sau đó các liên kết bị hỏng.

tôi đã mô tả quyết định này trong một bài báo bằng tiếng Nga, một ví dụ có thể được tìm thấy here

0

Hope dưới đây ai sẽ giúp bạn.

xlNewSheet.Hyperlinks.Add(xlWorkRange, string.Empty, "'Detailed Testcase Summary'!A1", "Click Here", "Please click me to go to Detailed Test case Summary Result");  
0

Để thêm một liên kết đến một bức tranh (đã chèn vào tờ):

Hyperlinks hyperlinks = ws.Hyperlinks; 
Hyperlink hyperlink = hyperlinks.Add(picture.ShapeRange.Item(1), "http://stackoverflow.com"); 

Bạn chưa thêm nó trực tiếp đến hình ảnh, nhưng mục 1 trong đó là ShapeRange. (Dù là gì ...)

Các vấn đề liên quan