【Spread.Net 16】过滤后导出EXCEL的问题
本帖最后由 dhc7440 于 2024-3-20 18:25 编辑spread过滤后,使用FpSpread.SaveExcel导出后的Excel中被过滤的数据是通过高度调成0来做的。
在office的Excel中加过滤后,下拉列表中看不到被过滤的内容。
有什么办法能看到被过滤的内容,或者是FpSpread导出excel的时候通过什么设置让被过滤的数据不导出在excel中么(ExcelSaveFlags.SaveAsViewed或者SaveAsFiltered都是高度调成0的)
你可以尝试克隆一份spread出来
删掉过滤行,然后去导出这个克隆的workbook
var temp=new FarPoint.Win.Spread.FpSpread();
MemoryStream ms = new MemoryStream();
fpSpread1.Save(ms, false);
temp.Open(ms);
//删除temp中的隐藏行
//
temp.SaveExcel 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
这个其实是memorystream 的指针位置的问题了
你可以在open前先写一个
ms.Seek(0, SeekOrigin.Begin);
或者直接这样写
fpSpread1.Open(new MemoryStream(ms.ToArray())); :hjyzw::hjyzw: :itwn: 问题已解决,多谢:hjyzw: 不客气
页:
[1]