我在我的应用程序中遇到以下异常:
Workbook workbook = new Workbook(fstream);
类型的异常' System.OutOfMemoryException'被扔了。
string tempPath = @"C:\File\01_TDv01.xlsx";
foreach (string templateFile in Directory.GetFiles(tempPath))
{
using (FileStream fstream = new FileStream(templateFile, FileMode.Open))
{
Workbook workbook = new Workbook(fstream); //getting exception here
Worksheet worksheet = workbook.Worksheets[0];
ArrayList List = new ArrayList();
//other code
}
}
catch (Exception ex)
{
}
我正在处理大小为38,436 KB的Excel文件;其中有10K行。
<add key="maxFileSizeLimit" value="2147483647" />
<httpRuntime targetFramework="4.5" maxQueryStringLength="52768" enable="true" maxRequestLength="2147483647"/>
<requestLimits maxQueryString="52768" maxAllowedContentLength="4294967295" />
请告诉我代码中的错误以及如何解决此异常。为什么会发生这种异常?
请注意,我无法对代码进行大量更改,因为它已经存在。请通过较少的更改让我知道一些解决方案。
提前致谢。
答案 0 :(得分:0)
@ user3196511
您能否向我们提供您的模板文件&#34; 01_TDv01.xlsx&#34;。我们需要使用您的模板文件来评估您的问题。在加载大文件时,请确保您有足够的内存(例如文件大小的10倍或更多内存)可用于大过程我们还建议您尝试我们的最新版本/修复:Aspose.Cells对于.NET v17.6.x(如果您尚未使用它)。此外,您应该在加载模板文件时尝试设置MemoryPreference属性,请参阅以下示例代码供您参考: 例如 示例代码:
//Specify the LoadOptions
LoadOptions opt = new LoadOptions();
//Set the memory preferences
opt.MemorySetting = MemorySetting.MemoryPreference;
using (FileStream fstream = new FileStream(templateFile, FileMode.Open))
{
Workbook workbook = new Workbook(fstream, opt); //getting exception here
Worksheet worksheet = workbook.Worksheets[0];
//other code
}
我是Aspose的支持开发人员/传播者。