我知道以下使用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的符号弹出窗口中显示)将符号添加到单元格中的方法
答案 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);
}