Hi,
Yes, sadly AutofitCol can be very slow. This is a known issue and something we would like to fix, but it is not an easy one. The problem is: AutofitCol does a real rendering of each cell, including stuff like multiple fonts in a single cell, formatting if the cell has a number, takes in account right to left, etc. So it is slow to measure each cell. But the story doesn't end there, we also use GDI+ instead of GDI in all graphics operations, and GDI+ is incredibly slow to measure strings, which is what AutofitCol basically does.
The result is that when you autofit some millions of cells, it can get slow fast.
As said, it is something in our todo list to improve its performance, but it isn't a simple one. We can't really switch away from GDI+, and other stuff like measuring each letter first and in the loop add the widths of each letter would only work with western languages. If you are measuring arabic or other complex scripts, the letters change depending on what comes before or after, so you can't just add font sizes.
Right now, the workaround is to not autofit the full sheet. Normally you can autofit some hundred of rows and you will get the same results way faster. In fact, that's what Excel does (or did, I haven't checked lately( when you autofit a column: It autofits the visible part and some thousand rows, not the full thing.
For that, you would need to do something like
Xls.AutofitCol(1, Xls.ColCount, 1, 1000, false, 1.2, 0, 0, 0, TAutofitMerged.None);
As said, it is in our list to see how to improve the performance here, but in the meantime, the workaround works normally well, and it is much much faster.