Как рассчитать высоту столбца 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;
}
Поэтому, если я вызываю первый метод с заданной строкой, он возвращает высоту для этой строки с указанным шрифтом и размером, но это не правильно.