Я потратил много часов, пытаясь определить формулу для преобразования пикселей .NET в ширину столбца Excel с использованием формата OpenXML. Я использую EPPlus для создания документов xmls. Я пытаюсь определить ширину столбца, размер которого должен быть изменен автоматически. Я получаю количество пикселей, измеряя строку, а затем пытаюсь преобразовать ее в ширину столбца для OpenXML, которая, как мне кажется, измеряется в символах.
Я читал документацию Microsoft о том, как его преобразовать, и пробовал формулу, которую они предлагают, но она даже близко не является точной:
http://msdn.microsoft.com/en-us/library /documentformat.openxml.spreadsheet.column.aspx
Вот мой код, использующий их формулу:
public double GetCharacterWidth(string Text, Font f, Graphics g)
{
float MaxDigitWidth = g.MeasureString("0", f).Width;
float Pixels = g.MeasureString(Text, f).Width;
return ((Pixels - 5) / MaxDigitWidth * 100 + 0.5) / 100;
}
Есть идеи?