Create your data connection first, make an extract and then publish it to Tableau Server by right-clicking the connection name (above the data pane), and selecting Publish to Server.... You can opt to include the extract to relevant refresh schedules as well as embed the password for logging to the source database.
Then close Tableau Desktop. Now open your report in Tableau Desktop, create a new connection to the published datasource (it should have a Tableau Server icon when connected), and replace the datasource for your report as described here: http://kb.tableau.com/articles/knowledgebase/replacing-data-source.
Now that your report is reading its data from the published datasource you can safely close the old datasource in your report. You are now ready to publish the report to Tableau Server. Note that it now uses a published extract as a datasource, not an extract that is built into the report itself.
If you try to download your newly published report, it will come as a TWB now.
Hope this helps,
I know of 2 options (there may well be others)
1. If you download the file as a TWBX, this file is actually just a renamed Zip File. You can open it as a zipfile, and extract the TWB from there. You still get the issue of having to download all of the extract though.
2. Take a look at this link. It shows how to extract a TWB file from the repository
Hope this helps