Try r7091. It should be better now.
may I know is there any difference between Hidecol and setting columnwidth to 0?
The column records of the worksheet contain a set field "Options" with the possible elements "croHidden" or "croPageBreak" which are added when a column is hidden or follows a page-break. This is the information evaluated when the file is written or read. The column width, on the other hand, can contain any value.
In the worksheet grid, however, the possibility to "truely" hide columns like in the worksheet would make conversion of grid column to worksheet column very complicated. So, I decided to keep the hidden columns and just set their width to 0 via the grid's ColWidth[] property. The unhidden colwidth is retained in the worksheet's column record. Therefore, it is possible to hide a column having a special width in the grid, and when the column is re-shown it gets its original width back. There is one issue, though: because the hidden column is still present in the grid with zero width, the column reappears when its border is dragged with the mouse in the column header.