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

516 Ansichten (letzte 30 Tage)
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');

Akzeptierte Antwort

Sindar
Sindar am 22 Apr. 2020
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 Kommentare
fixusc
fixusc am 22 Apr. 2020
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 am 15 Okt. 2021
Bearbeitet: Alan Pawollek am 15 Okt. 2021
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by