fmyuan2000 发表于 2015-9-14 15:47:00

为什么会出现Exception of type 'System.OutOfMemoryException'‘

为什么会出现   Exception of type 'System.OutOfMemoryException' was thrown.
版本号:8.35.20151.0
仅仅是打开上传的Excel文件。
spread.OpenExcel(filePath, FarPoint.Excel.ExcelOpenFlags.ColumnHeaders);



Excel 文件如下:

iceman 发表于 2015-9-15 09:07:00

回复 1楼fmyuan2000的帖子

问题我已经重现了,有进一步信息反馈给您。

fmyuan2000 发表于 2015-9-16 10:58:00

回复 2楼iceman的帖子

可以解决么?

iceman 发表于 2015-9-16 13:41:00

回复 1楼fmyuan2000的帖子

请问当前excel的来源是什么?
Spread在加载Excel时,需要加载两部分数据,数据和格式。
当前的Excel中除了我们看到的数据,目录列还有大量的数据校验格式存在:


我尝试清除了空白部分的数据校验格式,excel见附件,可以正常加载:

fmyuan2000 发表于 2015-9-16 13:43:00

Excel 文件来自,Spread 导出的文件。

现在的问题是我导出出去的文件导入不回来。我发现怎么文件的行数变了,变得特别多。 我这个文件也就60多行。这个bug 很严重啊。

我是设置了:
FarPoint.Web.Spread.ComboBoxCellType cb = new FarPoint.Web.Spread.ComboBoxCellType();

FpSpread1.ActiveSheetView.Columns.CellType = cb;

iceman 发表于 2015-9-16 14:49:00

回复 5楼fmyuan2000的帖子

很抱歉,目前我没能找出更好的方法来解决这个问题。目前情况来看只能采用您电话中提到的逐个单元格设置combo类型。

另外,我通过附件demo没有能重现出这个问题,能否在我的demo基础上修改重现这个问题?


Demo中代码如下:
protected void Page_Load(object sender, EventArgs e)
      {
            if (IsPostBack)
            {
                return;
            }

            DataTable city=new DataTable();
            city.Columns.AddRange(new DataColumn[] {new DataColumn("City", typeof(string)), new DataColumn("Owner", typeof(Int32)), new
DataColumn("State", typeof(string))});
            city.Rows.Add(new object[] { "Atlanta", 0, "Georgia" });
            city.Rows.Add(new object[] { "Boston", 1, "Mass." });
            city.Rows.Add(new object[] { "Tampa", 2, "Fla." });

            FarPoint.Web.Spread.ComboBoxCellType cb = new FarPoint.Web.Spread.ComboBoxCellType();
            cb.DataSource = city;
            cb.ShowButton = true;
            cb.DataMember = "City";
            cb.DataTextField = "City";
            cb.DataValueField = "Owner";
            cb.UseValue = true;

            this.FpSpread1.ActiveSheetView.AllowPage = false;
            this.FpSpread1.ActiveSheetView.Rows.Count = 100;

            for (int i = 0; i < 100; i++)
            {
                FpSpread1.ActiveSheetView.Cells.Value = 2;
            }


            FpSpread1.ActiveSheetView.Columns.CellType = cb;
         
      }

      protected void Button2_Click(object sender, EventArgs e)
      {
            this.FpSpread1.SaveExcel(this.Server.MapPath("1.xlsx"), FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat| FarPoint.Excel.ExcelSaveFlags.SaveAsViewed);

      }

      protected void Button3_Click(object sender, EventArgs e)
      {
            this.FpSpread1.OpenExcel(this.Server.MapPath("1.xlsx"));
            this.FpSpread1.ActiveSheetView.AllowPage = false;
      }

重现后我会把这个问题反馈给产品组,看能否在后续版本中改进。

fmyuan2000 发表于 2015-9-16 14:51:00

回复 6楼iceman的帖子

好的。

iceman 发表于 2015-9-16 14:57:00

回复 7楼fmyuan2000的帖子

感谢支持。谢谢

fmyuan2000 发表于 2015-9-16 14:59:00

请使用 导出代码
this.FpSpread1.SaveExcel(this.Server.MapPath("1.xlsx"), FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat| FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders);

iceman 发表于 2015-9-16 17:57:00

回复 9楼fmyuan2000的帖子

问题重现了,感谢反馈。

下来会提交给产品组,有进一步消息反馈给你。
页: [1] 2
查看完整版本: 为什么会出现Exception of type 'System.OutOfMemoryException'‘