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

时间:2018-08-01 09:23:41

标签: c# closedxml

我知道以下使用vb中的closedxml将符号添加到单元格中的解决方案

ws.Cell(1, 1).Value = "❶ Symbol";

How can I add symbols to a cell using closedxml?

我目前正在使用以下示例在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的符号弹出窗口中显示)将符号添加到单元格中的方法

2 个答案:

答案 0 :(得分:1)

这与C#中的字符串有关,而与ClosedXML无关。您可以像这样使用char.ConvertFromUtf32()方法:

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

PS:对我来说,008C给出的符号无效,例如2776给出的符号与您的问题类似。

答案 1 :(得分:0)

根据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);
}