C#使用ClosedXML向单元格插入'X'符号的问题咨询
正确插入特殊X符号的ClosedXML实现方案
情况1:使用Unicode自带的叉号符号
无需修改字体,直接赋值Unicode字符即可,常用叉号对应的Unicode编码如下:
- U+2717:✗ 普通叉号
- U+2718:✘ 加粗叉号
- U+00D7:× 乘号样式叉号
实现代码:
// 直接写入Unicode字符 ws.Cell(1, 1).Value = "✘"; // 或用字符编码写法,避免源码编码异常问题 ws.Cell(1, 1).Value = '\u2718'.ToString();
情况2:使用Wingdings字体的叉号(和Excel原生插入的符号样式一致)
如果需要使用传统Wingdings字体中的方框叉号,需要额外配置单元格字体属性:
ws.Cell(1, 1).Value = "X"; // 必须指定字体为Wingdings,才能将X渲染为叉号样式 ws.Cell(1, 1).Style.Font.FontName = "Wingdings";
异常原因说明
你之前看到符号代码而非符号本身,通常是两个原因导致:
- 赋值时写入了HTML实体(比如
×),ClosedXML不会自动解析HTML实体,会直接当作普通字符串展示 - 使用了特殊字体对应的字符,但没有给单元格设置对应字体,Excel会直接展示默认字体下的字符内容
内容的提问来源于stack exchange,提问作者krishna
相关产品推荐
相关产品推荐

