Is there a module that can help user to rearrange views' columns order?

Dear all,

Happy New Year 2018 !!!

I am doing a project that provides a view function for customers searching site contents. The default order of views’ columns is defined by site-builder in advance. Now the customer requests to have a function that they can rearrange the columns’ order of search results on their demands/habits.

For example of the view:

From (default order) : ID | Name | Sex | Age

To (custom order) : Age | Sex | Name | ID

Is there a module existed already to provide this kind of “custom order” function? Thanks.

If no, is there any documents to talk this topic for custom code/module? Thanks

Best regards, Teddy

Drupal version: