2009-08-26 5 views

Antwort

7

Was wollen Sie hier verwenden ist die Hyperlinks.Add Methode.

Sie können es nennen mit dem Code, der etwa wie folgt aussieht:

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

Hier ist eine vollständige Automatisierung Beispiel, dass Sie Test:

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

hoffe, das hilft!

Mike

+0

Ich benutzte den Adressparameter anstelle der Subadresse ... der erste funktioniert nicht. – TimothyP

+0

Der Schlüsselpunkt, den ich vermisste, war, dass die Zelle, auf die der Hyperlink zeigt, in die Subadresse geht. Ich habe versucht, es in die Adresse zu schreiben –

2

Ich mache es so:

 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; 

Es ist wichtig, das Symbol # in dem Link einzufügen, die in dem Buch zu einer Zelle führt, wenn dieses Symbol nicht eingeführt ist, dann ist die Link ist kaputt.

ich diese Entscheidung in einem Artikel in russischer Sprache beschrieben ist, kann ein Beispiel here

0

Hoffnung unter einem Ihnen helfen, zu finden.

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

Sie fügen es nicht direkt auf das Bild, aber der erste Punkt in seiner Shaperange:

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

Um einen Link zu einem Bild (bereits in das Blatt eingefügt) hinzuzufügen. (Was auch immer das ist ...)