配列を介して長い文字列をセルに割り当てると、文字列がランダムにドロップされることがわかりました。
たとえば、項目番号と本文 HTML (WatiN オートメーションの body Html から) を含む 2d 配列 (約 20 の値を持つ 1 行) があります。
その配列を行に割り当てると(もちろん同じサイズ)、HTMLがセルに挿入されないことがありますが、そのセルの両側の値は問題なく表示されました。
文字列が長すぎるという前提で、HTML から不要な空白を削除しようとしたところ、うまくいきましたが、長さのせいではありません!
文字列を単純にトリミングすると、機能することがわかります (末尾の空白がなくても!)。
Excel がそれを拒否する原因となる文字列自体には何があり、単純な文字列操作 (Trim など) で問題が解決するのはなぜですか?
EXCEL.Range range = worksheet.GetRange(1,1,10,10);
object[,] cells = range.GetCells();
cells[1,1] = "123456789";
cells[1,2] = waitnbrowser.Body; // Get 10K body text HTML string
cells[1,3] = "something else";
range.Value = cells; // Sometimes the body text is left out, even though it shows in the cells array fine.
長い文字列にトリムを追加すると、長さが変わらなくても機能します。
cells[1,2] = waitnbrowser.Body.Trim(); // this (or other string manipulation) fixes the problem!
range.Value = cells; // now works every time!