"Permanent html table" does make sense to me. Permanent means it is kept in storage and not created during page rendering.
I find I can often use cut-and-paste to transfer something from a web page to a spreadsheet, but this may be awkward for large tables, and maybe not something you want to do everyday, much less once an hour. On the other hand, saving the rendered html on the client machine makes it easy to run a script there that parses out the table. I have a python script I use frequently, but it is also something you could do in an emacs or vim macro. People who keep their vbasic skills up can do it as an Excel macro.
If you're creating the html from rows selected by a join, then the example's
with open('test.csv', 'wb') as dumpfile:
still works, and then you can have a button to download test.csv. If more than one person is going to be collecting those results, you might want to have a distinguishing name, either appending username to the basename, or using the session id.