Aspose.Cells.GridDesktop的多次循环还是有问题:System.IndexOutOfRangeException:“Index was outside the bounds of the array.”

在你刚刚发我的测试工程里,我改了一个列,换了一个文件。会有错误。文件地址:链接:百度网盘 请输入提取码
提取码:1qdg
工程我放在附件里
simpleform.zip (37.3 KB)

@hudaming
208m的大文件

我用准备用griddesktop做数据分析工具。208不算大的,我还有260的,300多的。正常数据,不是测试数据。

image.png (18.4 KB)

@hudaming
确实可以复现,建了问题跟踪单子
Issue ID(s): CELLSNET-54873

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

@hudaming
默认是用了省内存加载方式,就出现了问题,这里面跟踪起来很复杂,一时半会还解决不了
你先设置成 GridMemorySetting.Normal 就不会报错了,这种方式速度也相对快些

 public Form2()
        {
            InitializeComponent();
            //把加载方式换成normal 就不会报错了
           this.gridDesktop1.GridMemorySetting = GridMemorySetting.Normal;
            this.gridDesktop1.FinishLoadFile += GridDesktop1_FinishLoadFile;
        }

好的感谢!用你提供的办法,确实没有出现错误了。

@hudaming
好的,你先这样用常规模式吧,不影响功能。
默认的内存优化模式下的加载,当数据量大的时候非常复杂,我们查问题也很艰难

嗯,有时间的时侯,还是尽量查一下内存优化模式下的加载。优化内存模式只用2G不到的内存,常规模式要用差不多4G。相差实在太大了。

这个错误和字符串的null值有关,但是我单独拿了几个空字符串出来测试,并没有出现问题。应该是和大数据+字符串的null值有关.

字符串的空值是null,其他的空值是dbnull.value。不知道是不是大数据表内存优化的时侯,循环过一次的null单元格都给删除掉了造成的。小数据表没这问题。

@hudaming,

感谢您分享您的发现和更多详细信息。

我们已将其与您现有的票证(“CELLSNET-54873”)一起记录到我们的数据库中。 我们很快就会调查此事。