ループでエクセルのシ​ート数を呼び出し、シ​ート名を連番で定義す​る方法

8 views (last 30 days)
丈太郎 森川
丈太郎 森川 on 26 May 2021
Commented: Atsushi Ueno on 26 May 2021
エクセル名「DATA.xlsx」の中のシート1~5を抜き出し、それぞれのシートの変数をDATA1からDATE5で定義したいです。
n=5
for n=1:n
DATA(C)=readtable("DATA.xlsx","Sheet",C)
DATA1=Sheet1のtable
DATA5=Sheet5のtable
検索して変数のループ定義がありましたが、どうもうまくいきませんでした。
よろしくお願いします。
  1 Comment
Atsushi Ueno
Atsushi Ueno on 26 May 2021
readtable関数の出力型はtableであり「table自体の配列」を作ろうとすると下記エラーが出ます。
線形インデックス付け (添字 1 ) または多次元インデックス付け (添字 3 つ以上) を使用した
テーブルへの添字付けはできません。行の添字と変数の添字を使用してください。
背景が分からないので何とも言えませんが、他の手段として以下が考えられます。
①for文の中でシート1枚分の処理を行い、処理済シートは次のループで上書きする
②spreadsheetDatastore関数を使い複数のワークシートを読み取る
 出力がオブジェクト(matlab.io.datastore.SpreadsheetDatastore)になります
③readtable関数の代わりにreadmatrix関数やreadcell関数を使う

Sign in to comment.

Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!