【问题标题】:Insert symbol into a cell using closedxml and character code使用 closedxml 和字符代码将符号插入单元格
【发布时间】:2018-08-01 09:23:40
【问题描述】:

我知道以下在 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 中的符号弹出窗口中)

【问题讨论】:

  • 你能澄清一下你所说的“符号字符代码”是什么意思吗?我不清楚你想做什么 - 如果你能展示你喜欢使用的代码,但目前可能不起作用,那真的有助于澄清问题。
  • @DaisyShipton 我已经编辑了这个问题。谢谢。
  • 您谈论“使用符号的十六进制字符代码调用函数”,但您还没有说明确切是什么意思。您是否真的将字符代码作为字符串,这是您在第二个 sn-p 中尝试使用的?例如,如果您有 char,则可以在该字符上调用 ToString()
  • @DaisyShipton 我将编写一个函数来将十六进制字符代码添加到字符串中,因为前面的示例使用带有符号字符的字符串。将十六进制值传入函数,然后用传入的十六进制值格式化分配给单元格的值
  • 我要求您展示您希望该功能的外观。那么答案基本上可以是该功能的实现。

标签: c# closedxml


【解决方案1】:

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

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

PS:对我来说,008C 没有给出有效的符号,但例如 2776 给出的符号与您问题中的符号相似。

【讨论】:

    【解决方案2】:

    继 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多