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 列。
任何的想法!
您必须遍历单元格并手动添加超链接:
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中添加超链接有两种方法:
=HYPERLINK公式写入单元格
Cell cell = new Cell()
{
CellReference = "A3",
DataType = new EnumValue<CellValues>(CellValues.Number),
CellFormula = "=HYPERLINK(yourlinklocationcellhere, yourfriendlyhyperlinknamehere)"
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2164 次 |
| 最近记录: |