使用 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);
}
我知道在 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);
}