EPPlus超链接到另一张表格中的单元格

Evl*_*vlo 2 c# excel epplus epplus-4

我正在努力将添加到另一个列表的超链接添加到我生成的excel文件中.我试过这样的:

ws.Cells[1, 1].Formula="HYPERLINK(\"[#]'sheetName'!R4C1\";\"linktext\")"
ws.Cells[1, 1].Formula="HYPERLINK(\"#'sheetName'!R4C1\";\"linktext\")"
ws.Cells[1, 1].FormulaR1C1="HYPERLINK(\"[#]'sheetName'!R4C1\";\"linktext\")"
ws.Cells[1, 1].FormulaR1C1="HYPERLINK(\"#'sheetName'!R4C1\";\"linktext\")"
Run Code Online (Sandbox Code Playgroud)

在excel 365(完全脱机应用程序)中打开生成的excel文件后,我得到的消息是文件中存在错误,并且我使用此超链接公式的所有单元格都是空的.

错误消息是:

we found a problem with some content in FILENAME do you want us to try to recover as much as we can
Run Code Online (Sandbox Code Playgroud)

如何使它工作?

此外,当我手动将相同的公式放在单元格中时,它的工

完整代码:

using OfficeOpenXml;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ExcelHyperlinkTest
{
    class Program
    {
        static void Main(string[] args)
        {
            MemoryStream excelStream = new MemoryStream();
            ExcelPackage excelFile = new ExcelPackage(excelStream);

            ExcelWorksheet wsSrc = excelFile.Workbook.Worksheets.Add("src");
            ExcelWorksheet wsTgt = excelFile.Workbook.Worksheets.Add("tgt");

            wsSrc.Cells[1, 1].Formula = string.Format("HYPERLINK(\"#'{0}'!R{1}C{2}\";\"{3}\")", "tgt", 2, 5, "test"); //FormulaR1C1

            excelFile.Save();
            excelStream.Position = 0;

            using (FileStream file = new FileStream("c:\\linkTest.xlsx", FileMode.Create, System.IO.FileAccess.Write))
            {
                byte[] bytes = new byte[excelStream.Length];
                excelStream.Read(bytes, 0, (int)excelStream.Length);
                file.Write(bytes, 0, bytes.Length);
                excelStream.Close();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Evl*_*vlo 6

这有效

wsSrc.Cells[1, 6].Value = "test3";
            Uri url = new Uri("#'tgt'!B5", UriKind.Relative);
            wsSrc.Cells[1, 6].Hyperlink = url;
Run Code Online (Sandbox Code Playgroud)