如何在Excel中插入Unicode128275锁符号?VBA及EPPlus实现方案问询
解决方案
VBA实现方法
ChrW()仅支持0到&HFFFF(即0到65535)范围内的Unicode编码,超过该范围的字符需要用UTF-16代理对拼接实现:解锁符号编码128275(十六进制为0x1F513)对应的高位代理为0xD83D,低位代理为0xDD13,将两个ChrW()返回值拼接即可得到目标符号。
Sub InsertLockSymbol() ' 拼接UTF-16代理对插入解锁符号 Range("B2").Value = ChrW(&HD83D) & ChrW(&HDD13) ' 可选:设置单元格字体为支持emoji的字体确保显示正常 Range("B2").Font.Name = "Segoe UI Emoji" End Sub
C# 配合EPPlus实现方法
- C#原生支持大于65535的Unicode字符,直接使用
char.ConvertFromUtf32()方法转换编码即可,无需手动计算代理对。
using OfficeOpenXml; using System.IO; class Program { static void Main(string[] args) { // EPPlus 5及以上版本非商业使用需声明证书 ExcelPackage.LicenseContext = LicenseContext.NonCommercial; using (var package = new ExcelPackage(new FileInfo("output.xlsx"))) { var worksheet = package.Workbook.Worksheets.Add("Sheet1"); // 转换Unicode编码为对应字符串 string lockSymbol = char.ConvertFromUtf32(128275); // 赋值给B2单元格 worksheet.Cells["B2"].Value = lockSymbol; // 可选:设置字体保证emoji显示正常 worksheet.Cells["B2"].Style.Font.Name = "Segoe UI Emoji"; package.Save(); } } }
内容的提问来源于stack exchange,提问作者Ahmad
相关产品推荐
相关产品推荐

