How do I "writetable" with a CSV file when table elements have newlines or double quotation marks?

4 ビュー (過去 30 日間)
I have a table, "DataTable", in a MATLAB with elements that are strings containing line breaks, double quotes, and commas.
When I write the table from the CSV file, the table is not the same as the one I had originally.  I get extra rows where the line breaks were and the quotes are not how they were originally.
Why does this happen and how can I write my table using a CSV file?

採用された回答

MathWorks Support Team
MathWorks Support Team 2025 年 1 月 6 日
編集済み: MathWorks Support Team 2025 年 1 月 6 日
Based on the definition of the CSV format, fields containing line breaks (CRLF), double quotes, and commas should be enclosed in double-quotes.
In order to write the original table to CSV format, you can add the "QuoteStrings" flag to "writetable".  The flag is documented at the link below:
This is illustrated as follows:
>> writetable(DataTable, 'DataTable.csv','QuoteStrings',true);
Then, when reading from the CSV, you should explicitly tell "readtable" the format of the file.  This option's workflow is documented at the link below:https://www.mathworks.com/help/matlab/ref/readtable.html#bvghccx
​This is illustrated as follows:
>> opts = detectImportOptions('DataTable.csv'); >> T = readtable('DataTable.csv',opts)

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSpreadsheets についてさらに検索

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by