MATLABでのExcelの読み書き

65 views (last 30 days)
Hide
Hide on 18 Jan 2022
Commented: Hide on 19 Jan 2022
MATLAB 2019b
Guide or Appdesigner
Excelの読み書きのMathWorks推奨方法を教えて下さい。
xlswriteが非推奨ということなので、readcell, writecellなどを使いましたが、エラーが起こります。
(他のアプリケーションが開いているか権限が無いという内容です)
タスクマネージャーで事前にkillする、pauseを入れるなどしてみましたが、処理出来るとき・出来ないときがあります
(ex. system('taskkill /F /IM EXCEL.EXE'); pause(5))
コミュニティを見ると非常に多くの方が同じ様なエラーに苦しんでいる様ですが、このやり方なら完全解決というものが見当たりません。
Excelはビジネスシーンで必須のツールと言っても良いと思うので、そのコントロールが上手く行かなとMATLABをアプリケーション開発に使い続けることが難しくなってしまうので、是非MathWorksとしての、公式な、推奨方法をご教授頂きたいです。
よろしくお願いします。

Answers (2)

Hernia Baby
Hernia Baby on 18 Jan 2022
個人的には データインポートツール がオススメです。
GUI操作で読み込み方を決められるうえ、操作を関数にすることもできます。
最近では Youtube でも紹介されてましたね。
出力についてですが、
エクセルのマクロと連携させて出力する場合は一度 tmp.xlsx を作って出力するのもありです。
データ別のインポート&エクスポートの対応表は こちら です。
  1 Comment
Hide
Hide on 19 Jan 2022
早速のご回答ありがとうございます。
読み込みファイルが多数の場合、データインポートツールで生成した関数を使うようにしたいと思います。
Youtube動画のご紹介もありがとうございます。
エラーは主に出力時に発生しているのですが、マクロとの連携はしていないです。
フォーマットとなるExcelファイルをコピーしそれに対して書き込みをしています。
その場合でもtmp.xlsxを作ることが有効になるのか試してみます。
対応表もありがとうございます。

Sign in to comment.


Toshinobu Shintai
Toshinobu Shintai on 18 Jan 2022
コマンドで行いたい場合は「readmatrix」「writematrix」を推奨します。
  5 Comments
Hernia Baby
Hernia Baby on 19 Jan 2022
エラー内容を見るにcell内でベクトル化してる部分がある気がします。 cell2matをかけるとそこでエラーが出るのではないでしょうか? cellfun関数でlengthをとり、1より大きいものがいたら、その子が悪さをしてます
Hide
Hide on 19 Jan 2022
ありがとうございます。
はい。仰る通りです。cell2matでエラーが出ます。
対策分かりました。ありがとうございます。

Sign in to comment.

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!