Как рассчитать высоту столбца Excel на основе текста в C#

Мне нужно рассчитать высоту столбца Excel на основе текста с фиксированной шириной столбца. Я использую метод ниже, чтобы вычислить высоту для данного текста с заданным шрифтом. Но все равно он не возвращает точную высоту. Может кто-нибудь подсказать мне.

public static double GetHeight(string value, string font = "Arial", int fontSize = 8, bool isBold = false)
    {
        System.Drawing.Font stringFont = new System.Drawing.Font(font, fontSize, (isBold ? FontStyle.Bold : FontStyle.Regular));


        return GetHeight(stringFont, value);
    }

    private static double GetHeight(System.Drawing.Font stringFont, string value)
    {
        Size proposedSize = new Size(39, 12);
        Size textSize = System.Windows.Forms.TextRenderer.MeasureText(value, stringFont, proposedSize, System.Windows.Forms.TextFormatFlags.TextBoxControl | System.Windows.Forms.TextFormatFlags.WordBreak |  System.Windows.Forms.TextFormatFlags.NoFullWidthCharacterBreak);
        double height = (double)(((textSize.Height / (double)7) * 256) - (128 / 7)) / 256;
        height = (double)(height + (height * .10));
        return height;
    }

Поэтому, если я вызываю первый метод с заданной строкой, он возвращает высоту для этой строки с указанным шрифтом и размером, но это не правильно.

0 ответов

Другие вопросы по тегам