MATLAB: How to preserve original column headings (variable names) when using writetable

column headingsMATLABvariable namesvariabledescriptionwritetable

When importing spreadsheets containing invalid variable names, Matlab changes them and stores the original column headings in the VariableDescriptions property of the table. How can I write my table to a file and use the original variable names on export? In other words, how can I export T so that output_table.xlsx is the same as input_table.xlsx?
Reprocessing the exported file as a string is not really an option, because my original file will have multiple sheets.
T = readtable('input_table.xlsx'); % Matlab changes "Column 1" to "Column1"
writetable(T,'output_table.xlsx');

Best Answer

As of 2019b, table variable names don't need to follow normal variable naming rules. This allows for a couple of fixes:
T = readtable('input_table.xlsx','PreserveVariableNames',true);
or
T.Properties.VariableNames={'Column 1';'Column 2'}