EXCELのスプレッドシートを一気に読み取る方法

21 views (last 30 days)
恵輔 沖
恵輔 沖 on 17 May 2023
Commented: 恵輔 沖 on 18 May 2023
%今このようにして、Excelのシートを読み取っているのですが、全て一度に読み取ることができる関数を教えて欲しいです。
%多分、for文でできると思うのですが、やり方がわからず教えていただきたいです。
Excel_name = '試験結果.xlsx';
temp1 = readmatrix(Excel_name,'sheet', 'ma曲げ', 'range', 7);
temp2 = readmatrix(Excel_name,'sheet', 'mo曲げ', 'range', 7);
temp3 = readmatrix(Excel_name,'sheet', 'ma座屈', 'range', 7);
temp4 = readmatrix(Excel_name,'sheet', 'mo座屈', 'range', 7);
temp5 = readmatrix(Excel_name,'sheet', 'ma縦圧縮', 'range', 7);
temp6 = readmatrix(Excel_name,'sheet', 'mo縦圧縮', 'range', 7);
temp7 = readmatrix(Excel_name,'sheet', 'FEM解析_ma', 'range', 7);
temp8 = readmatrix(Excel_name,'sheet', 'FEM解析_mo', 'range', 7);

Answers (1)

Atsushi Ueno
Atsushi Ueno on 17 May 2023
シート名は代わりに数値(1,2,3,...)にする事も可能ですが、どのデータがどのシートか分からなくなりそうですね。
%今このようにして、Excelのシートを読み取っているのですが、全て一度に読み取ることができる関数を教えて欲しいです。
%多分、for文でできると思うのですが、やり方がわからず教えていただきたいです。
Excel_name = '試験結果.xlsx';
Sheet_name = {'ma曲げ','mo曲げ','ma座屈','mo座屈','ma縦圧縮','mo縦圧縮','FEM解析_ma','FEM解析_mo'};
for k = 1:numel(Sheet_name)
temp{k} = readmatrix(Excel_name,'sheet', Sheet_name{k}, 'range', 7);
end
  2 Comments
Atsushi Ueno
Atsushi Ueno on 17 May 2023
sheetnames 関数を使えばシート番号順のシート名リストを得られるのだそうです。これなら安心してシート番号によるアクセスが出来ますね。
Sheet_name = sheetnames('試験結果.xlsx')
% 下記と順序が一致するか要チェック
% 文字ベクトルの cell 配列(上)ではなくstring 配列(下)になるので注意
% {'ma曲げ','mo曲げ','ma座屈','mo座屈','ma縦圧縮','mo縦圧縮','FEM解析_ma','FEM解析_mo'};
% ["ma曲げ","mo曲げ","ma座屈","mo座屈","ma縦圧縮","mo縦圧縮","FEM解析_ma","FEM解析_mo"];
恵輔 沖
恵輔 沖 on 18 May 2023
ありがとうございます!!

Sign in to comment.

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!