在C#中的Excel [2007]中添加超链接 - 在Excel中自己 [英] Adding hyperlinks in Excel[2007] in C# - Within Excel it self

查看:169
本文介绍了在C#中的Excel [2007]中添加超链接 - 在Excel中自己的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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

解决方案

你想要什么这里使用的是 Hyperlinks.Add 方法。



您可以使用如下代码调用它:

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

工作表.Hyperlinks.Add(
rangeToHoldHyperlink,
string.Empty,
hyperlinkTargetAddress,
屏幕提示文本,
超链接标题);

这是一个完整的自动化示例,您可以测试:

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

Excel.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工作表=(Excel.Worksheet)workbook.Worksheets [1];
Excel.Range rangeToHoldHyperlink = worksheet.get_Range(A1,Type.Missing);
string hyperlinkTargetAddress =Sheet2!A1;

工作表.Hyperlinks.Add(
rangeToHoldHyperlink,
string.Empty,
hyperlinkTargetAddress,
屏幕提示文本,
超链接标题);

MessageBox.Show(准备清理?);

//清理:
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);
}

希望这有帮助!



Mike


Can anybody tell me how we can add a hyperlink in Excel (2007 or later) from a cell in one sheet to a cell in another sheet using Office Interop in .NET (c#)

For example: A hyperlink from Sheet1 Cell A1 to Sheet2 Cell B10

解决方案

What you want to use here is the Hyperlinks.Add method.

You can call it with code that looks something like this:

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

Here is a full automation example that you can 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);
}

Hope this helps!

Mike

这篇关于在C#中的Excel [2007]中添加超链接 - 在Excel中自己的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆