private void SetFont(string range, Microsoft.Office.Interop.Excel.Font font) { //Range.Font.Name Range = workSheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, workSheet, new object[] { range }); object Font = Range.GetType().InvokeMember("Font", BindingFlags.GetProperty, null, Range, null); Range.GetType().InvokeMember("Name", BindingFlags.SetProperty, null, Font, new object[] { font.Name }); Range.GetType().InvokeMember("Size", BindingFlags.SetProperty, null, Font, new object[] { font.Size }); }
public double MeasureTextHeight(string text, Microsoft.Office.Interop.Excel.Font font, int width) { if (string.IsNullOrEmpty(text)) { return(0.0); } var bitmap = new Bitmap(1, 1); var graphics = Graphics.FromImage(bitmap); var pixelWidth = Convert.ToInt32(width / 1); //7.5 pixels per excel column width var drawingFont = new System.Drawing.Font(font.Name, (float)font.Size); var size = graphics.MeasureString(text, drawingFont, pixelWidth); //72 DPI and 96 points per inch. Excel height in points with max of 409 per Excel requirements. return(Math.Min(Convert.ToDouble(size.Height) * 72 / 96, 409)); }