byf 发表于 2017-7-31 18:10:47

调用WorkSheet.RemoveRows(int row,int rowcount)报错

调用WorkSheet.RemoveRows(int row,int rowcount)报错。

我将附件中的Excel导入到程序中,用spread控件显示,然后删除行,其中删除5-32行中的任意一行就会报错

错误信息就是这个。


这是删除按钮调用的代码。


private void simpleButton1_Click(object sender, EventArgs e)
      {
            try
            {
                Worksheet sheet = m_SpreadSheet.gcSpreadSheet1.ActiveSheet;

                if (sheet.Selections.Count == 0) { return; }
                CellRange cellrange = sheet.Selections;

                if (cellrange == null) return;

                ///选中行数
                int selectRowCount = cellrange.RowCount == -1 ?
                  sheet.RowCount : cellrange.RowCount;
                /// 选中行号
                int row = cellrange.Row == -1 ? 0 : cellrange.Row;
                sheet.RemoveRows(row,selectRowCount);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
      }

dexteryao 发表于 2017-8-1 10:08:14

您好,您的问题重现出来了,正在调研问题。
看代码您使用的是WPF或者SilverLight,下次您发帖请发到XAML专区,会方便处理,这次我帮您移动了。

byf 发表于 2017-8-1 11:56:57

dexteryao 发表于 2017-8-1 10:08
您好,您的问题重现出来了,正在调研问题。
看代码您使用的是WPF或者SilverLight,下次您发帖请发到XAML专 ...

好的,谢谢

dexteryao 发表于 2017-8-1 17:38:41

您好,这个是产品的一个bug,删除conditionformat时候有些问题。
可以先删除条件格式,再删除行。
   var range = new GrapeCity.Windows.SpreadSheet.Data.CellRange(row, -1, selectRowCount, -1);

            sheet.ConditionalFormats.RemoveRule(range);
            sheet.RemoveRows(row, selectRowCount);

byf 发表于 2017-8-3 10:07:13

添加了sheet.ConditionalFormats.RemoveRule(range);但还是不行啊,程序走到这句代码的时候就抛出异常了,还是未将对象引用设置到对象的实例 这个异常。

byf 发表于 2017-8-3 10:07:49

dexteryao 发表于 2017-8-1 17:38
您好,这个是产品的一个bug,删除conditionformat时候有些问题。
可以先删除条件格式,再删除行。

添加了sheet.ConditionalFormats.RemoveRule(range);但还是不行啊,程序走到这句代码的时候就抛出异常了,还是未将对象引用设置到对象的实例 这个异常。

dexteryao 发表于 2017-8-3 17:34:12

我测试了没有发现问题,可否提供下您的具体步骤,比如是删除那几行时候会报错?

byf 发表于 2017-8-4 18:05:02

dexteryao 发表于 2017-8-3 17:34
我测试了没有发现问题,可否提供下您的具体步骤,比如是删除那几行时候会报错?


byf 发表于 2017-8-4 18:06:46

dexteryao 发表于 2017-8-3 17:34
我测试了没有发现问题,可否提供下您的具体步骤,比如是删除那几行时候会报错?

我是先将EXCEL导入到控件中,然后再删除的,有时候删除某一行不报错,但有时候就出错,选中多行出错的几率会大些

byf 发表于 2017-8-4 18:06:57

dexteryao 发表于 2017-8-3 17:34
我测试了没有发现问题,可否提供下您的具体步骤,比如是删除那几行时候会报错?

我是先将EXCEL导入到控件中,然后再删除的,有时候删除某一行不报错,但有时候就出错,选中多行出错的几率会大些
页: [1] 2 3
查看完整版本: 调用WorkSheet.RemoveRows(int row,int rowcount)报错