Excelファイルに対し、範囲を読み込みを行い、
データテーブルに値を格納したいのですが、
なぜか読み込みが途中で終わってしまい、
最後までExcelファイルの読み込みができません。
範囲を読み込みの後に待機時間を5秒おいても結果が変わらないのですが、
このアクティビティは制限があるのでしょうか?
ご教示よろしくお願いいたします。
▼参考情報
読み込み対象Excekファイル:10列/531行
Excelファイルに対し、範囲を読み込みを行い、
データテーブルに値を格納したいのですが、
なぜか読み込みが途中で終わってしまい、
最後までExcelファイルの読み込みができません。
範囲を読み込みの後に待機時間を5秒おいても結果が変わらないのですが、
このアクティビティは制限があるのでしょうか?
ご教示よろしくお願いいたします。
▼参考情報
読み込み対象Excekファイル:10列/531行
これは、どのような事象発生をもって、判断したのでしょう?
特に制限は聞いたことないです。
もしかしたら、EXCELアプリケーションスコープで開いた時に、リンクの最新化とか、マクロの有効化などのダイアログが出ているのかもしれませんね。
可視化オンにして、どう挙動するか、確認してみましょう。
範囲を読み込みが終わった後にブレイクポイントを置き、データテーブルの中を確認するためにクリップボードにコピーし、エクセルに張り付け、
元となるエクセルと比較したところ読み込みが最後まで終わっていませんでした。
サイトでDLしたファイルなので、リンクやマクロ設定はされていません・・・
先ほど可視化をオンにして確認しましたが、アプリケーションが閉じられるのが早い感じがしました。
そのEXCELファイル、共有できますか?こちらでもやってみようかと。。。
申し訳ありません、社内機密のファイルなので共有は難しいです・・・
ただ先ほどデータテーブルのbyte数を確認したところ、10003byteしか格納されておらず、
端数の3byteは最後に「…」となっておりました。
おそらくデータテーブルに10000byteしか格納されないため、起こった事象かと思われます。
データテーブルの制限を10000byte以上にする方法等はご存じでしょうか。
また、同じように再現できるか確認したサンプルをお渡しいたします。
テスト.xlsx (8.4 KB)
こんにちは
Localsパネルのビューアーはすべての情報を出力するわけではないので、今回のケースの確認方法と
してはあまりよくないと思います。
WriteLineやLogMessageあるいは、ブレイクポイントで実行を停止しているなら
Immediateパネルで dt.Rows.Countの様にDataTableの行数を確認してみると
良いように思います。
イミディエイトを初めて使用したのですが、
確認したところ対象となる530件保持されていました。
ということはこちらの件数が正ということでよいのでしょうか?
ありがとうございます!
確認してみます!
こんにちは
530件で正しいと思います。
必要に応じて、範囲書き出しやCSV書き出しで出力したものの中身をチェックすると良いかもしれません。
解決できました!
ありがとうございます!
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.