我正在尝试使用 OpenXML 规范中的官方公式计算 Excel 列的像素宽度,如本文所述。但是,为了应用这个公式,我需要知道Normal字体的最大数字宽度,即最宽数字的像素宽度。OpenXML 规范给出了这个例子作为说明:
以 Calibri 字体为例,11 点字体大小的最大数字宽度为 7 像素(在 96 dpi 时)。
我已经通过目视检查 Calibri 11 点数字来检查这是否正确,它确实是 7 像素宽。因此,我正在尝试创建一种方法,该方法将返回任何字体/大小的最大数字宽度。
我遵循了在这个问题中提出的建议,但它没有产生我期望的结果。
这是我的测试代码:
var font = new Font("Calibri", 11.0f, FontStyle.Regular);
for (var i = 0; i < 10; i++)
{
Debug.WriteLine(TextRenderer.MeasureText(i.ToString(), font));
}
这报告所有数字的宽度都是 15。
请问有什么建议吗?
谢谢,蒂姆