Dealing with long lists of items
I'd probably prefer to create the data using Craft's control panel UI for tags (→ book type) and dates than typing it all into Excel. So if it was me, I would probably vote for option a or b.

There shouldn't be that much of a speed differences between creating matrix rows or adding new entries for the data entry (there's this nice shortcut for "Save entry and create new one"), so my advice is to keep it simple and use a channel. Besides good performance (no relationship queries etc.), other advantages over matrix rows is to view and sort the books nicely in the CPs index view (customizable since Craft 2.3) or use the default disable switch (with traffic lights on the index view).

This gives your client a nice and flexible UI today and you can start developing a custom plugin that gets their system data into Craft. Even with that future solution it could make sense to have the entries available in Craft, to add website only data or make relations to other entries for example, and your plugin will be more of a custom import solution than a simple view to the external API data.