我发现当通过数组将长字符串分配到单元格时,它会随机丢弃字符串。
例如,我有一个2d数组(1行,大约有20个值),包括项目编号和正文HTML(来自WatiN automation的正文Html)。
当我将该数组分配到一行(当然大小相同)时,偶尔不会将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!