PowerApps ~ 「Excelからインポート」と「OneDrive」だと列の型が違う!? ~

PowerApps ~ 「Excelからインポート」と「OneDrive」だと列の型が違う!? ~

今回はアプリを作成した際のトラブルと、暫定の対応方法です。(2018年10月)

開発を進めていた時、当初はOneDriveに保存したExcelをデータソースとして使用していました。

しかし、開発が進んでいく中で、処理が複雑になったり、Ecxelが大きくなりすぎたせいで
処理の「遅さ」を感じるようになり、OneDriveではなくアプリにデータソースを取り込んで処理させることとしました。

毎回、OneDriveにアクセスする必要がなくなるので、処理速度が改善されることはサンプルを作成して確認していたので簡単にいくと思っていたのですがここでトラブル発生!

OneDriveのExcelをそのままインポートしたので問題ないはずが、エラーが多数発覚!
内容を確認すると、アプリ内で使用している関数にて「型」が合わないためにエラーとなってました。

ようは、OneDriveのExcelをデータソースとして使用した場合はすべての列が「文字列」であるのに対して、Excelからインポートしたデータソースは列の値を自動で判定して文字列以外の型に変更されてました。。。

PowerAppsの場合、関数をひとつひとつ書き換えるのは結構面倒くさいし、そもそもそのトラブルが発生したアプリは関数がより複雑になっており、そのすべてを治すのはキツスギ・・・

なので、暫定の回避策として以下の対応を行いました。
①Excelの最上段にダミーレコードを用意してすべての項目に「文字列」を設定する
⇒これで、インポートしたときにOneDriveと同じ状態に
②OnStartの処理にてダミーレコードの行を削除する、もしくは除外する関数を追加する

これでひとまずの対応としました。

Excelからインポートの列の型はどこかで設定できるのかと疑問に思いつつも暫定対応です。。。