使用EPPlus生成Excel时勾选符号显示异常求助
EPPlus生成Excel勾选符号显示异常解决办法
问题场景
用EPPlus生成Excel时,想让部分单元格显示方框勾选符号,当前代码如下:
using (ExcelRange Rng = wsSheet.Cells[col]) { Rng.Value = Beneficiary.IDentityOrFamilyBookCheck;// 该值为 ü Rng.Style.Font.SetFromFont("Wingdings", 16); Rng.Style.Font.Charset = 178; }
按上述配置应该显示标准勾选符号,但实际显示为非预期的异常符号,预期是方框内带勾选的样式。
问题原因
- Wingdings字体中,方框勾选符号对应的字符并非
ü,字符映射错误导致显示异常; - 设置的字符集
Charset=178是Windows Baltic字符集,不匹配Wingdings字体的字符映射规则,进一步导致显示错乱。
解决方案
方案1:使用Wingdings字体的正确字符
Wingdings字体里,方框勾选符号对应的十进制字符代码是252,直接赋值该字符并修正字符集:
using (ExcelRange Rng = wsSheet.Cells[col]) { // 赋值Wingdings字体对应的方框勾选字符 Rng.Value = ((char)252).ToString(); Rng.Style.Font.Name = "Wingdings"; Rng.Style.Font.Size = 16; // 设置ANSI字符集,匹配Wingdings的映射规则 Rng.Style.Font.Charset = 0; }
方案2:直接使用Unicode勾选符号
如果不想依赖Wingdings字体,可直接使用Unicode标准的方框勾选符号☑,无需特殊字体设置:
using (ExcelRange Rng = wsSheet.Cells[col]) { Rng.Value = "☑"; Rng.Style.Font.Size = 16; }
内容的提问来源于stack exchange,提问作者Taha Babi
相关产品推荐
相关产品推荐

