C#代码在Excel工作表中添加超链接

时间:2015-06-15 11:22:21

标签: c# excel

您好我有一个包含多张纸的Excel文件。 其中一张工作表将包含其他工作表的超链接。

使用以下代码时,我已成功添加链接但是 当我点击链接时,它会显示错误**"Refrence not valid"**

代码段:

private void AddHyperLink(Workbook xlWorkBook,int nfaultCount)
{        

   Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
            DateTime now = DateTime.Now;

        xlWorkSheet.Name = "Summary"; //name of the sheet containing hyperlink

        xlWorkSheet.Select(Type.Missing); //code to select the summary sheet

        for (int i = 1; i <= nfaultCount; i++)
        {
            int x = i + 9;

            string str = "Fault Code "+i + " of " + nfaultCount;

            string strRange1 = "A" + x;

            string strRange2 = "A" + x;

            string strRange = strRange1 + ":" + strRange2; //location of the link

             var Range = xlWorkSheet.get_Range(strRange);

           // strRange1 = "!" + strRange1;
            string strp="#" + i + " of " +nfaultCount + strRange1;

             i +" of " nfaultCount==> name of the target worksheet

           Range.Cells.Hyperlinks.Add(Range,strp, Type.Missing, "Fault Code Link", str);
        }

        xlWorkSheet.Columns["A:B"].AutoFit();

}

我使用以下链接作为我的参考 http://www.experts-exchange.com/Programming/Languages/.NET/Q_27912390.html

但它的给出错误Refrence无效。

1 个答案:

答案 0 :(得分:0)

错误消息显示您的超链接地址无效。

尝试将其生成为:

string strp="#'" + i + " of " +nfaultCount + "'!" + strRange1;
// Sample result: "#'4 of 5'!A3

而不是

string strp="#" + i + " of " +nfaultCount + strRange1;
// Sample result: #4 of 5A3

以上假设目标工作表名称为“4 of 5”。

注意你需要一个!工作表名称和范围名称之间的字符。 如果工作表名称包含一个或多个空格,则还需要将工作表名称括在单引号中。