在 C# 中的 Excel[2007] 中添加超链接 - 在 Excel 本身中

2023-11-27

谁能告诉我如何在 Excel(2007 或更高版本)中添加超链接 使用 .NET (c#) 中的 Office Interop 将一张工作表中的单元格复制到另一张工作表中的单元格

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


你想在这里使用的是超链接.添加 method.

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

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

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

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

希望这可以帮助!

Mike

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中的 Excel[2007] 中添加超链接 - 在 Excel 本身中 的相关文章

  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 检测到严重错误 c0000374 - C++ dll 将已分配内存的指针返回到 C#

    我有一个 c dll 它为我的主 c 应用程序提供一些功能 在这里 我尝试读取一个文件 将其加载到内存 然后返回一些信息 例如加载数据的指针和内存块的计数到 c Dll 成功将文件读取到内存 但在返回主应用程序时 程序由于堆损坏而崩溃 检测
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 在 Windows Phone silverlight 8.1 上接收 WNS 推送通知

    我有 Windows Phone 8 1 silverlight 应用程序 我想使用新框架 WNS 接收通知 我在 package appxmanifest 中有
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string

随机推荐

  • PHP dirname 返回符号链接路径

    假设我有一个符号链接 one directory to two directory If I echo dirname dirname FILE 它返回 one directory 最好的退货方式是什么 two directory 用法示例
  • 不使用 nightly 时如何忽略基准测试?

    我有一个包含一些基准测试和测试的文件 想针对稳定版 测试版和夜间版进行测试 然而 要么我不使用基准测试 要么稳定 测试版抱怨 使用 stable beta 时有没有办法隐藏所有基准部分 作为示例 以下代码来自book feature tes
  • 如何在 Windows 上从 pygraphviz 运行 neato

    我正在尝试在 python v 2 7 中使用 pygraphviz 和 networkx 来创建网络映射 我在 stackoverflow 上发现了一个看起来非常有用的脚本 import networkx as nx import num
  • GDB TUI - 输出未对齐

    我在ubuntu上使用gdb 7 7 1 GNU gdb Ubuntu 7 7 1 0ubuntu5 14 04 2 7 7 1 我的终端是 Konsole 2 13 2 我遇到的问题是 当我进入 TUI 模式时 在一两个调试器会话之后 会
  • 设置请求持续时间的全局变量

    我可以为单个请求的长度设置某种全局变量 以便页面的所有控件都可以响应它 而不必将其传递给每个控件吗 例如 如果有人点击我的 MasterPage 上的 保存 按钮 我是否可以设置一些内容 以便我的页面上的每个 UserControl 都可以
  • Future.wait() 不能在没有纤程的情况下等待(在 Meteor.method 中等待另一个 future 时)

    In Meteor 我正在编写一个方法 该方法必须检查某个路径的子目录中是否有新文件 我首先想列出其中的子目录Meteor之后我child process exec一个简单的 bash 脚本 列出自上次执行以来添加的文件 我在使目录发现异步
  • 使用 O 表示法在 for 循环中对 LinkedList 调用 get() 的复杂性

    我有一个 uni 实用程序 可以使用 O 表示法确定一小部分代码的复杂性 代码是 for int i 0 i lt list size i System out println list get i 所讨论的列表是一个链接列表 对于我们的实
  • 如何破译 C 中复杂的指针声明?

    所以我想举个例子 int pi pi is a pointer that points to an integer const int cpi cpi is a pointer that points to a constant integ
  • Excel - 如何转换 UTC 日期时间

    我想在Excel中使用这个字符串作为日期时间 2016 04 06T18 05 32 6550717 03 00 怎样才能转换呢 日期 时间中有两件事引起了问题 第一个是T这表示时间的开始 Excel 使用空格 第二个是右侧的所有内容 如果
  • TestNG 中测试的执行顺序

    如何自定义TestNG中测试的执行顺序 例如 public class Test1 Test public void test1 System out println test1 Test public void test2 System
  • 如果“z”中有“x”和“y”:

    我正在用 python 编写一个问答脚本 它获取 raw input 并将其设置为 theQuestion 我试过if var1 and var2 in theQuestion 但它会查找其中一个字符串 而不是同时查找两个字符串 有没有一种
  • 使用 LongListSelector 连续分页

    当我的 LongListSelector 滚动到底部时 我想自动从 Web 服务加载更多数据 就像商店应用程序一样 我的问题是我找不到任何事件来触发加载更多操作 Microsoft 的建议是使用 LongListSelector ItemR
  • 如何在 Ionic 2 中的选择组件内使用图像

    我正在尝试将图像放入SelectIonic 2 中的组件 我已将图像源文件放入www img我的 Ionic 2 项目中的文件夹 然而 使用一个简单的img tag 使用此代码不显示任何图像
  • goto 可以打破嵌套循环吗?

    JavaScript 支持类似于 goto 的语法来打破嵌套循环 总的来说 这不是一个好主意 但它被认为是可以接受的做法 C 不直接支持break labelName语法 但它确实支持臭名昭著的goto 我相信 C 中可以实现等效的功能 i
  • 如何将 tqdm 与多线程结合使用?

    我试图使用 tqdm 报告从三个链接下载每个文件的进度 我想使用多线程从每个链接同时下载 同时更新进度条 但是当我执行脚本时 有多行进度条 似乎线程正在同时更新 tqdm 进度条 我问我应该如何运行多线程来下载文件 同时保持每次下载的进度条
  • Java - 全名正则表达式

    如何验证全名的正则表达式 我只想要字母 没有数字 和正则表达式的空格 这就是我到目前为止所做的 你能帮我修复正则表达式吗 非常感谢 public static boolean isFullname String str boolean is
  • 让 ggvis::export_png() 工作

    Goal 导出一个ggvis图为 PNG 文件 用于包含在 Rmd 文档中 Problem 我对 Node js 基本上一无所知 除了它很棒而且我应该了解更多 我了解到 library ggvis mtcars gt ggvis mpg w
  • 如何实现带有子项的可扩展android导航抽屉?

    如何实现这样的android导航抽屉 TopLevelView1 TopLevelView4 可以选择并且没有子项顶级 evelView 5 可以折叠 我的问题是 如果我的小组结构是这样的 All Stared类别 mp3 txt doc
  • 如何清理ThreadLocals

    有人有一个如何做到这一点的例子吗 它们是由垃圾收集器处理的吗 我正在使用 Tomcat 6 javadoc 是这样说的 只要线程处于活动状态并且 ThreadLocal 实例可访问 每个线程就持有对其线程局部变量副本的隐式引用 线程消失后
  • 在 C# 中的 Excel[2007] 中添加超链接 - 在 Excel 本身中

    谁能告诉我如何在 Excel 2007 或更高版本 中添加超链接 使用 NET c 中的 Office Interop 将一张工作表中的单元格复制到另一张工作表中的单元格 例如 从 Sheet1 单元格 A1 到 Sheet2 单元格 B1