A client has many cases in spreadsheets, and Civicase looks very suitable. I cannot see any facility to import cases into Civi via the UI. Is this possible? I guess the alternative is to import directly into the database. Any suggestions?
As far as I know there is no Import Cases in the UI. So importing into the database would be the solution, but make sure you respect all the data models! You need to add data to civicrm_case, civicrm_case_contact, probably civicrm_case_activity and civicrm_activity and for the roles into civicrm_relationship.
You might look at the API cvs Importer extension. https://civicrm.org/extensions/api-csv-import-gui
I've found the extension extremely helpful for creating all kinds of CiviCRM data from CSV formatted data.
I've been working out the queries to do this for the past week or so for a client who is migrating from an old desktop database.
Here's the full list of tables involved:
civicrm_case_contact (to link each case to a contact id)
civicrm_activity (to create the necessary activities for each case)
civicrm_case_activity (links activity to case id)
civicrm_activity_contact (multiple records for each activity)
civicrm_relationship (relationships between case subject and assignees)
You can actually get away without filling in the relationships if this is purely historical data but it's only an extra query so you may as well fill it in.
I created a special case type for the data import and used the subject field to store details about the old cases during the SQL imports. I removed all required activities but one from this case type which simplified the import process.
When in doubt, just create test cases under a dummy contact and see what values are populated.
EDIT: I decided to write up the entire procedure on my website. You can find the details here - http://www.drewslair.com/2016/06/importing-case-data-civicase/