I've done something similar in the past using the Excel2Collection plugin. It runs faster than the native apex data load. But the basis is the same.
You can create a table in which the data load wizard can dump the spreadsheet content. From there you can easily transfer your data to the correct tables using triggers, or a handle the whole with pl/sql procedure.
What you choose, I think depends on your requirements.
If you have a lot of data mutation to do before you can send the data to their final tables, you might want to use PL/SQL. If it's a straight forward process, an after insert trigger on the upload table might suffice.
I can't use plug-ins and I thought the data load wizard could not handle that many columns. Anyone have any examples of how I can take the spreadsheet (that the user is loading into the APEX application via a field on a data entry screen that does a file browse and I am storing in a CLOB field in a table) and use PL/SQL to parse through it to insert the spreadsheet data into tables? I'd like to process the file and display the resulting # records added to each table for the user to see before going on to the next data entry screen.
Or is there a better way of doing the processing?