how to preserve original column headings (variable names) when using writetable

396 次查看(过去 30 天)
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');

采纳的回答

Sindar
Sindar 2020-4-22
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'}
  2 个评论
fixusc
fixusc 2020-4-22
Wow, thanks for pointing this out.
It's however very likely to cause problems when writing code for someone else because it is hard to assure that everybody has at least 2019b. But cool to know for my own stuff.
Alan Pawollek
Alan Pawollek 2021-10-15
编辑:Alan Pawollek 2021-10-15
Thanks @Sindar works perfecty fine :) Now I don't need to do it via
[name of File].Properties.VariableNames
and write it manually for each coloumn.
ps. I habe the latest version of Matlab R2021b

请先登录,再进行评论。

更多回答(0 个)

产品


版本

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by