在C#中的Excel 中添加超链接 – 在Excel中自己

任何人都可以告诉我,我们可以如何在Excel(2007或更高版本)中使用Office Interop in .NET(c#)从一个表格中的单元格添加超链接到另一个表格中的单元格

例如:从Sheet1单元格A1到Sheet2单元格B10的超链接

你想在这里使用的是Hyperlinks.Add方法。

你可以用看起来像这样的代码来调用它:

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

以下是您可以testing的完整自动化示例:

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

希望这可以帮助!

麦克风

我这样做:

  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; 

将符号#插入到通向书中单元格的链接中是非常重要的,如果未插入该符号,则链接将被破坏。

我用俄语的文章描述了这个决定,可以在这里find一个例子

希望下面的一个将帮助你。

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

为图片添加链接(已经插入图纸):

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

你不是直接把它添加到图片,但它的ShapeRange中的第一项。 (不pipe那是…)