c# - 如何在 C# windows 窗体中使用具有空格的字体来创建 excel 工作表?
问题描述
我正在使用IEnumerable
变量在 C# windows 窗体应用程序中创建 Excel 工作表。问题是如果字体名称有 1 个单词,例如,我可以设置创建的工作表字体。'IRNazanin',但对于带有空格的字体名称,它不起作用,例如。'B 米特拉'。我的代码是:
var wb = new XLWorkbook { RightToLeft = true };
var ws = wb.Worksheets.Add("Sick_Information");
ws.Columns().AdjustToContents();
ws.Style.Font.FontName = "B Mitra";
我试过使用字体名称:
- 没有时间,例如。“密特拉”
- 带连字符,例如。“B-米特拉”
- 带下划线,例如。“B_米特拉”
- 带有额外的单个 qout,例如。“'B米特拉'”
还是行不通。
我正在使用ClosedXML.Excel
带有ClosedXML
版本0.94.2.0
和 MS Office 2016 的库。excel 将获取字体名称但不会应用它。
真正B Mitra
的字体是这样的。(手动更改)
客户需要带有B Mitra
字体和波斯数字的文件。所以我别无选择更改字体。
解决方案
"B Mitra"
是一个有效的字体名称,但您还需要更改FontCharSet
:
cell.Style.Font.SetFontName("B Mitra");
cell.Style.Font.SetFontCharSet(XLFontCharSet.Arabic);
ClosedXMLXLFontCharSet.Default
默认使用。输出 Excel 文件显示正确的字体名称,但不能正确显示单元格内容:
我使用 Open XML SDK 2.5 Productivity Tool for Microsoft Office 来检查 Excel 文件。XLFontCharSet.Arabic
那里有一条线:
FontCharSet fontCharSet6 = new FontCharSet(){ Val = 178 };
并且内容按预期显示。
推荐阅读
- sql - 为在另一列上具有相同值的分区中的每个前导行获取一行
- android - 获取美国格式的用户电话号码
- mqtt - 将 mosquitto_sub 的输出重定向到 .txt 文件并在每次更新时覆盖
- ruby - 我将如何使用 Ruby 在 Windows 中获取当前屏幕的方向?
- python - 如何使用 3D 训练数据构建二元分类器
- google-sheets - 将 Google Sheet 连接到 Photoshop
- remix - 无法使用@chainlink 验证智能合约
- javascript - 使用 pop 方法清空数组中的所有元素
- deep-learning - dropout 正则化技术是否会影响神经网络中的测试执行时间?
- php - PHPmailer SMTP在真实服务器上不起作用