少打点工 发表于 2024-11-5 16:39:25

Spread导出为excel后系统界面的表格sheet被移除了

如题:正常saveExcel,文件保存后界面上的表格sheet被移除了,导致再次赋值时找不到对象,请问这是正常的吗?


demo:
private void SaveExcelFile(string filename)
      {
            bool b_ret;
            try
            {
                PUFun.FieldClear(fpSpreadImport);
                fpSpreadImport.Sheets.Protect = false;
                fpSpreadImport.Sheets.Visible = true;
                b_ret = fpSpreadImport.SaveExcel(filename, IncludeHeaders.BothCustomOnly);
                fpSpreadImport.Sheets.Visible = false;
                if (b_ret == false)
                {
                  return;
                }
            }
            catch (System.Exception ex)
            {
                PUFun.ShowMsgBox(ex.Message);
            }
      }


Richard.Ma 发表于 2024-11-5 18:57:50

1.你用的是winform还是wpf?这个是wpf板块

2.只看你的代码没法复现你说的问题,这类问题通常可能和工作簿的内容有关,请上传一个包含加载的工作簿的demo上来,我帮你看看原因,如果是bug需要报研发来调查

少打点工 发表于 2024-11-8 11:13:35

Richard.Ma 发表于 2024-11-5 18:57
1.你用的是winform还是wpf?这个是wpf板块

2.只看你的代码没法复现你说的问题,这类问题通常可能和工作 ...

1.不好意思版主发错版块了,是Winform的。
2.找到了解决方法,之前是我保存之后将sheet置为不可见了,然后我将sheet.visible = false这行注释之后,就能正常二次赋值。
3.有一个疑问:我反复校验过确实是sheet.visible这个属性影响,但是sheet的可见状态为什么会影响sheet的取值呢,fpsread的可见状态也不会影响赋值呀。

Richard.Ma 发表于 2024-11-8 16:58:53

从你发的代码中没有看到有赋值的操作。

你说的赋值是什么意思,是给单元格设置值还是?如果是单元格的话,隐藏sheet时应该是不影响的

少打点工 发表于 2024-11-12 10:01:50

Richard.Ma 发表于 2024-11-8 16:58
从你发的代码中没有看到有赋值的操作。

你说的赋值是什么意思,是给单元格设置值还是?如果是单元格的话 ...

是其他的代码,给单元格赋值,操作是:

fpSpreadImport.ActiveSheet.RowCount++;
fpSpreadImport.ActiveSheet.Cells.Text = "String";

类似这样直接赋值。fpsprad的可见状态不会影响赋值,我是说里面的sheet的可见状态,会影响赋值,所以最后我把刚开始的fpSpreadImport.Sheets.Visible = true 拿掉就正常了。

Richard.Ma 发表于 2024-11-12 16:15:56

抱歉,通过你的描述和代码还是不知道如何复现问题。我建议你可以发一个复现问题的demo项目上来,我来协助调查一下是什么原因
页: [1]
查看完整版本: Spread导出为excel后系统界面的表格sheet被移除了