将超链接添加到 Excel 表 closedxml

Alw*_*ner 2 c# excel hyperlink closedxml

我正在将数据表转换为工作正常的 excel。我在数据表中有 4 列。Column1 和 Column2 是简单的文本。Column3 和 Column4 是超链接 url 和显示文本。所有 4 列都按 excel 格式导出,代码如下:

        string fileName = ConfigurationManager.AppSettings["filename"];
        string sheetName = System.IO.Path.GetFileNameWithoutExtension(fileName);
        using (XLWorkbook wb = new XLWorkbook())
        {               
            var ws = wb.Worksheets.Add(ptDataTable, sheetName);

            ws.Style.Font.FontName = "Arial";
            ws.Style.Font.FontSize = 10;
            ws.Style.Alignment.WrapText = true;
            ws.FirstRow().Style.Alignment.SetWrapText(true);

            ws.Style.Alignment.SetWrapText(true);
            ws.Style.Alignment.SetShrinkToFit(true);
            ws.Style.Alignment.Vertical = XLAlignmentVerticalValues.Top;
            ws.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left;
            ws.Rows().AdjustToContents();
            ws.Columns().AdjustToContents();

            ws.Rows(2,200).Style.Fill.SetBackgroundColor((XLColor.Transparent));
            ws.Columns(9, 10).Width = 50.0;
            ws.Range("A2:J200").Style.Border.SetInsideBorder(XLBorderStyleValues.Thin);
            ws.Range("A2:J200").Style.Border.SetOutsideBorder(XLBorderStyleValues.Thin);


            using (MemoryStream stream = new MemoryStream())
            {
                wb.SaveAs(stream);
                return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
            }
        }
Run Code Online (Sandbox Code Playgroud)

我想用 column3(url) 和 column4(display text) 创建超链接,这个超链接将是导出的 excel 中的 3 列。

任何的想法!

Fra*_*tha 5

您必须遍历单元格并手动添加超链接:

ws.Cell(rowNumber, columnNumber).Hyperlink = new XLHyperlink(@"http://www.yahoo.com");
Run Code Online (Sandbox Code Playgroud)

您可以在https://github.com/ClosedXML/ClosedXML/wiki/Using-Hyperlinks 中找到有关 ClosedXML 中超链接的更多信息


小智 3

如果我没记错的话,您的代码使用的是 ClosedXML 库,而不是 OpenXMLSDK。

在OpenXMLSDK中添加超链接有两种方法: