使用 closedxml 和字符代码将符号插入单元格

Insert symbol into a cell using closedxml and character code

我知道在 vb

中使用 closedxml 将符号添加到单元格中的以下解决方案
ws.Cell(1, 1).Value = "❶ Symbol";

()

我目前正在使用下面的示例在 c# 中设置 wingdings 值

private void CreateExcelTableBodyCellSymbolCircle(IXLWorksheet worksheet, string cellID, XLColor colour)
{
    const string circleSymbol = "l";

    PopulateExcelTableCellWithSymbol(worksheet, cellID, colour, circleSymbol);
}

private void PopulateExcelTableCellWithSymbol(IXLWorksheet worksheet, string cellID, XLColor colour, string symbolValue)
{
    worksheet.Cell(cellID).DataType = XLCellValues.Text;
    worksheet.Cell(cellID).Value = symbolValue;
    worksheet.Cell(cellID).Style.Font.FontName = "Wingdings";
    worksheet.Cell(cellID).Style.Font.FontColor = colour;
}

但我正在寻找一种方法,利用符号的十六进制字符代码(显示在 excel 的符号弹出窗口中)将符号添加到单元格中

这更多是关于 C# 中的字符串,而不是 ClosedXML。您可以像这样使用 char.ConvertFromUtf32() 方法:

worksheet.Cell(cellID).Value = char.ConvertFromUtf32(0x008C) + " Symbol";

PS:对我来说,008C 没有给出有效的符号,但是例如 2776 给出了一个类似于你问题中的符号。

继 Raidri 的回答之后——我已经接受了——因为它更像是字符串。 C#中的解决方案如下

private void CreateExcelTableBodyCellSymbolCircle(IXLWorksheet worksheet, string cellID, XLColor colour)
{
    string circleSymbol = char.ConvertFromUtf32(0x006C);

    PopulateExcelTableCellWithSymbol(worksheet, cellID, colour, circleSymbol);
}

private void PopulateExcelTableCellWithSymbol(IXLWorksheet worksheet, string cellID, XLColor colour, string symbolValue)
{
    worksheet.Cell(cellID).DataType = XLCellValues.Text;
    worksheet.Cell(cellID).Value = symbolValue;
    worksheet.Cell(cellID).Style.Font.SetFontName("Wingdings");
    worksheet.Cell(cellID).Style.Font.SetFontColor(colour);
}