複数のExcelファイルを連続して読み込みたい
조회 수: 19 (최근 30일)
이전 댓글 표시
複数のExcelファイルを連続して読み込みたいと考え,以下のプログラムを作成したのですが,
FileList = dir(['*.xlsx']); %同じフォルダ内のExcelファイルの一覧を作成
t = struct2table(FileList); %ファイルの一覧を構造体配列からテーブルに変換
name = t(:,1); %ファイル名のみの配列を作成
%readtableを繰り返し
for i = 1:size(str);
filename = name(i,1);
T = readtable(filename);
end
エラー: readtable (line 198)
File input は空でない文字ベクトルまたは string スカラーでなければなりません。
エラー: Untitled2 (line 7)
T = readtable(filename);
と表示されてしまいます.
cell配列のままであることが問題だと考え,for文の前に
t = cell2mat(name(:,1));
cha = char(name(:,1));
など試みましたが上手く行きません.
基本的な,配列タイプの理解が出来ていない事が原因だと分かっているのですが,どなたかご教示頂けないでしょうか.
どうかよろしくお願いします.
댓글 수: 0
답변 (3개)
Hiro Yoshino
2022년 6월 21일
ds = tabularTextDatastore("*.xlsx",ReadSize="file");
こうすると
T = ds.read() % もしくはread(ds)
の度にファイルが1つずつテーブルデータとして出てきます。
ロードしたくないデータなどは事前に弾いておけるので、オプションを活用して高速に・スマートに出来るかと思います。
この場合、同じものは:
ds = tabularTextDatastore("*.xlsx",ReadSize="file");
for k=1:numel(ds.Files)
T = ds.read();
end
こんな感じです。
Hernia Baby
2022년 6월 20일
以下の行、全角文字のスペースが入っています。
name = t(:,1); %ファイル名のみの配列を作成
以下に変更してください(Tabキーで文字を揃えました)
name = t(:,1); %ファイル名のみの配列を作成
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 スプレッドシート에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!