複数のExcelファイルを連続して読み込みたい
49 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
複数の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 commentaires
Réponses (3)
Hiro Yoshino
le 21 Juin 2022
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
le 20 Juin 2022
以下の行、全角文字のスペースが入っています。
name = t(:,1); %ファイル名のみの配列を作成
以下に変更してください(Tabキーで文字を揃えました)
name = t(:,1); %ファイル名のみの配列を作成
0 commentaires
Voir également
Catégories
En savoir plus sur スプレッドシート dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!