dhc7440 发表于 2024-3-18 11:28:31

【Spread.Net 16】过滤后导出EXCEL的问题

本帖最后由 dhc7440 于 2024-3-20 18:25 编辑

spread过滤后,使用FpSpread.SaveExcel导出后的Excel中被过滤的数据是通过高度调成0来做的。
在office的Excel中加过滤后,下拉列表中看不到被过滤的内容。

有什么办法能看到被过滤的内容,或者是FpSpread导出excel的时候通过什么设置让被过滤的数据不导出在excel中么(ExcelSaveFlags.SaveAsViewed或者SaveAsFiltered都是高度调成0的)

Richard.Ma 发表于 2024-3-18 18:17:03

你可以尝试克隆一份spread出来

删掉过滤行,然后去导出这个克隆的workbook

            var temp=new FarPoint.Win.Spread.FpSpread();
            MemoryStream ms = new MemoryStream();
            fpSpread1.Save(ms, false);
            temp.Open(ms);
            //删除temp中的隐藏行
            //
            temp.SaveExcel

dhc7440 发表于 2024-3-19 14:26:10

SheetView sheetView = this.fpSpread1.ActiveSheet;
            sheetView.RowCount = 100;
            sheetView.ColumnCount = 4;
            sheetView.ColumnHeader.RowCount = 1;
            sheetView.ColumnHeader.Cells.Text = "A";
            sheetView.ColumnHeader.Cells.Text = "B";
            sheetView.ColumnHeader.Cells.Text = "C";

            for (int i = 0; i < 100; i++)
            {
                if (i > 1)
                {
                  sheetView.Cells.Text = Convert.ToString(Math.Floor(Convert.ToDecimal(i - 2) / 4) * 4);
                  sheetView.Cells.Text = Convert.ToString(i * 11);
                  sheetView.Cells.Text = Convert.ToString(i * 12);
                  sheetView.Cells.Text = Convert.ToString(i * 13);
                }
            }

            FpSpread temp = new FpSpread();
            MemoryStream ms = new MemoryStream();
            this.fpSpread1.Save(ms, false);
            temp.Open(ms);

上面的代码到temp.Open(ms);的时候就会报下面的错误
System.Xml.XmlException:Root Element Missing
环境是VS2022,.NetFramework4.8, spread.net 16

Richard.Ma 发表于 2024-3-19 17:57:42

这个其实是memorystream 的指针位置的问题了

你可以在open前先写一个
ms.Seek(0, SeekOrigin.Begin);


或者直接这样写
fpSpread1.Open(new MemoryStream(ms.ToArray()));

波波虎 发表于 2024-3-20 17:36:42

:hjyzw::hjyzw:

Richard.Ma 发表于 2024-3-20 18:17:50

:itwn:

dhc7440 发表于 2024-3-20 18:24:45

问题已解决,多谢:hjyzw:

Richard.Ma 发表于 2024-3-21 15:49:08

不客气
页: [1]
查看完整版本: 【Spread.Net 16】过滤后导出EXCEL的问题