メインコンテンツ

.NET Excel スプレッドシート データの cell 配列の読み取り

この Microsoft® .NET Framework の例では、Microsoft Excel® スプレッドシート データの列を MATLAB® 型に変換する方法を説明します。MATLAB は、さまざまな .NET の値を System.Object[,] 型として読み取ります。関数 cell を使用して System.String の値を MATLAB 文字配列に、System.DateTime の値を datetime オブジェクトに変換します。他の例については、Convert Returned .NET Data to MATLAB Cell Arraysを参照してください。

Excel で、次のデータを含むファイルを作成します。

Date       Weight
10/31/96   174.8
11/29/96   179.3
12/30/96   190.4
01/31/97   185.7

Date 列を右クリックして [セルの書式設定] を選択します。[Number] タブで [分類] の値が Date であることを確認します。

ファイルをローカル フォルダー (H:\Documents\MATLAB フォルダーなど) に weight.xls という名前で保存します。その後ファイルを閉じます。

MATLAB で、スプレッドシートからデータを読み取ります。

NET.addAssembly("microsoft.office.interop.excel");
app = Microsoft.Office.Interop.Excel.ApplicationClass;
book =  app.Workbooks.Open("H:\Documents\MATLAB\weight.xls");
sheet = Microsoft.Office.Interop.Excel.Worksheet(book.Worksheets.Item(1)); 
range = sheet.UsedRange;
arr = range.Value;

データを MATLAB 型に変換します。

data = cell(arr,"ConvertTypes",{"all"});

データを表示します。

cellfun(@disp,data(:,1))
Date       
   31-Oct-1996 00:00:00

   29-Nov-1996 00:00:00

   30-Dec-1996 00:00:00

   31-Jan-1997 00:00:00

例が完了したら、Excel プログラムを終了します。

Close(book)
Quit(app)

参考

トピック