csvファイルに追加で書き込む
조회 수: 119 (최근 30일)
이전 댓글 표시
既にあるcsvファイルに場所を指定して書き込む方法がわかりません。
csvファイルのA1:C5に文字、数字が記載してあり(excelで開いたとき)、
D1から新たに追加したいと考えています。
A=[1;2;3;4;5]
dlmwrite('test.csv',A,'-append');
この場合、列ではなく行の最終に追加されてしまいます。
writematrix(A,'test.csv','Sheet',1,'Range','D1:D5')
この場合は 無効なパラメーターsheet。 となります。
どのようにすればよいのでしょうか?
댓글 수: 0
채택된 답변
Kojiro Saito
2020년 2월 14일
dlmwriteのappendやfopen('filename', 'a')だと、ファイルの最後の行に追加になってしまいます。また、writematrixでRangeを指定できるのは、.xls、.xlsm、.xlsxのスプレッドシートファイルのみです。
D1から追加する方法として、例えば以下の2通りがあります。
%% 方法1 Aを元のCSVのtableに結合してからファイルに書き込む
t = readtable('test.csv', 'ReadVariableNames', false);
A=[1;2;3;4;5];
t2 = addvars(t, A);
writetable(t2, 'test.csv', 'WriteVariableNames', false);
%% 方法2 writematrixでRangeを指定して書き込む
m = readtable('test2.csv');
writetable(m, 'test2.xlsx', 'WriteVariableNames', false)
A=[1;2;3;4;5];
writematrix(A, 'test2.xlsx', 'Range', 'D1:D5')
m2 = readtable('test2.xlsx', 'ReadVariableNames', false);
writetable(m2, 'test2.csv', 'WriteVariableNames', false)
ただ、方法2だと.csv⇔.xlsxに変換しないとwritematrixでRange指定ができないので、あまりメリットは無いかと思います。
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 スプレッドシート에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!