相关疑难解决方法(0)

OpenXML:Excel中的自动调整列宽

我编写了一个使用OpenXML生成Excel文件的代码.下面是在Excel中生成列的代码.

Worksheet worksheet = new Worksheet();
Columns columns = new Columns();
int numCols = dt1.Columns.Count;
for (int col = 0; col < numCols; col++)
{
    Column c = CreateColumnData((UInt32)col + 1, (UInt32)numCols + 1, 20.42578125D);

    columns.Append(c);
}
worksheet.Append(columns);
Run Code Online (Sandbox Code Playgroud)

另外,我在下面尝试创建列.

Column c = new Column
{
    Min = (UInt32Value)1U,
    Max = (UInt32Value)1U,
    Width = 25.42578125D,
    BestFit = true,
    CustomWidth = true
};
Run Code Online (Sandbox Code Playgroud)

我认为使用BestFit它应该工作.但它没有设置自动尺寸.

c# openxml openxml-sdk

14
推荐指数
3
解决办法
3万
查看次数

如何测量给定字体/大小(C#)中数字的像素宽度

我试图计算Excel列的像素宽度,如在此后,使用从所述的OpenXML规范官方式.然而,为了应用该式中,我需要知道最大数字宽度的的普通字体,这是最宽的数字位的像素宽度.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));
}
Run Code Online (Sandbox Code Playgroud)

这会报告所有数字的宽度均为15.

有什么建议吗?

蒂姆,谢谢

c# gdi+ gdi pixel font-size

9
推荐指数
3
解决办法
2万
查看次数

标签 统计

c# ×2

font-size ×1

gdi ×1

gdi+ ×1

openxml ×1

openxml-sdk ×1

pixel ×1