I started with the ExportGridToExcel.js extension, but it has some issues. Doesn't work well with RowExpander plugin (can't handle the extra column), has problems with data/dataypes (i.e. if a date field is blank, etc.), and doesn't support a lot of browsers.
I can deal with the last one so I went with it. I tried applying various patches from within the 23-page thread and couldn't get the right combination to work cleanly. I still get the typical "fld is undefined" on the "switch (fld.type)" line or "v is null" error depending on what hack I used.
Instead of all the people in that huge thread going through the same pains, I was hoping someone who has it all figured out would be willing to post their solution.
P.S. Especially if it includes greater browser support since I saw some posts about that but I never got that far...