Why does Pascal return 72? Is this a Mac? Or are you confuse "points" with "pixels"? A "point" is the font size unit, 1/72 inch. So, there are 72 points per inch, or: a font size 72 corresponds to a height of 1 inch. If your screen resolution is 96 pixels per inch this font uses 96 pixels per line (font height).
I did a mistake, checking screen.PixelsPerInch before the form was opened. It returned 72, after form was opened - 96. Windows Control Panel - Displays - Custom DPI Setting displays Ruler where 1 inch is
shorter than a real inch, measured by a real ruler on a screen (see screenshot below).
What are you doing to determine the resolution practically? On my 96ppi monitor, I put a TPanel on a form and set its width and height to 96, and when I measure this it is "exactly" 1 inch.
Well, I measured my laptop's screen horizontal size (displayable area, of course) with a ruler and it was 12". Then I divide horizontal resolution 1280 by 12 and got 106 ppi.
Your test with TPanel gives 1 real inch when setting TPanel.width=106
Finally, setting the same font for DBGrid (for parent Form, to be honest) and to Spreadsheet, and
worksheet.WriteColWidth(C, DBGrid1.Columns[C].Width/Screen.PixelsPerInch, suInches)
provided the best result for column width when exporting to Excel, as you told.
I would like not to set font for the Form, use default instead, but discovering default font name and size is a bit challenge.