It would be much easier to create a Filter (on your Deals page set to Table View) to show only the deals in Closed Won and set the columns to show exactly the information you want.
Does this do want you want or did I over simplify?
Thank you for the extra detail - yes, the API is the way to go.
We do the same for one of our clients. We built a custom dashboard that pulls all the information from HubSpot and displays it in a table with totals, sort by region, total by region, etc.
With the Deals API you can specifiy the Property (Column) you want.
But...
You're still going to have to process the Deals to filter out what you want, handle pagination (if you're dealing with more than 100 deals), filtering date ranges, etc.