Формула для преобразования пикселей .NET в ширину Excel в формате OpenXML

Я потратил много часов, пытаясь определить формулу для преобразования пикселей .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;
    }

Есть идеи?

12
задан Jeff Stock 11 October 2011 в 11:47
поделиться