How do I allow user to select table column they want in Drupal View?
Give a look at Views Dynamic Fields module. I have used it in the past to create selectable table columns to display for views.


  The Views Dynamic Fields module provides a filter for use with Views
  module. This filter allows the user to pick and choose which fields to
  display for a rendered instance of a view for that user. This provides
  a customized view instance for each user.
  
  Features
  
  
  Users can dynamically choose the fields to view in their rendered view instance
  Default fields to show when no filtering is applied, can be configured
  Possible to always keep certain fields to display to the user
  An exclusion mode to allow reverse selection of fields when there are too many
  Great for creating and exporting reports from the view
  Works great with Fields Embed Views module