如何使用EPPlus在单元格内创建链接

IEn*_*tor 45 c# excel epplus

我试图弄清楚如何使用EPPlus而不是包含链接文本的单元格在单元格内编写超链接.我需要它被识别为链接并且可以点击.

任何帮助表示赞赏.

Han*_*Han 95

这是另一种方法:

var cell = sheet.Cells["A1"];
cell.Hyperlink = new Uri("http://www.google.com");
cell.Value = "Click me!";
Run Code Online (Sandbox Code Playgroud)

我测试过了.它工作正常.

  • 谢谢你!我必须在超链接后设置值,否则我会看到单元格中的地址,而不是值. (7认同)
  • Ahhhhhhhhhhhh比"\"更容易,"\"\"??"``1感谢\! (3认同)

小智 21

以下代码适用于我.

string FileRootPath = "http://www.google.com";
_Worksheet.Cells[intCellNumber, 1].Formula = "HYPERLINK(\"" + FileRootPath + "\",\"" + DisplayText + "\")";
Run Code Online (Sandbox Code Playgroud)

我希望这会对你有所帮助.

快乐的编码!!

  • 对我来说,它似乎不是一个通用的解决方案,因为HYPERLINK功能可能不适用于非英语版本的MS Excel.从这个角度来看,韩寒的答案更好. (3认同)
  • 为什么不 `String.Format(@"HYPERLINK(""{0}"", ""{1}"")", FileRootPath, DisplayText)` ;) (2认同)
  • 为什么不使用 `$"HYPERLINK(\"{FileRootPath}\", \"{DisplayText\")"`(自 2011 年 OP 以来,保持每隔几年添加一种新的输出格式的明显传统)。 (2认同)

Car*_*din 21

有几种方法可以解决它:

1)要使用URI,请设置一个人类可读的名称

var cell = sheet.Cells["A1"];
cell.Hyperlink = new Uri("http://www.google.com");
cell.Value = "Click me!";
Run Code Online (Sandbox Code Playgroud)

2)使用ExcelHyperLink并使用对象初始化程序设置人类可读的名称

var cell = sheet.Cells["A1"];
cell.Hyperlink = new ExcelHyperLink("http://www.google.com") { Display = "Click me! };
Run Code Online (Sandbox Code Playgroud)

3)使用= Hyperlink()公式

var cell = sheet.Cells["A1"];
cell.Formula = string.Format("HYPERLINK({0},{1})", "http://www.google.com", "Click me!");
cell.Calculate();
Run Code Online (Sandbox Code Playgroud)