Skip to content

Commit 19ea96a

Browse files
committed
Fix for issue #2349
1 parent 5eb64da commit 19ea96a

2 files changed

Lines changed: 43 additions & 2 deletions

File tree

src/EPPlus/ExcelPackageAsync.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ private async Task LoadAsync(Stream input, Stream output, string Password, Cance
175175
}
176176
finally
177177
{
178-
ms.Dispose();
179-
}
178+
//ms.Dispose(); //Don't dispose the stream as it is used as the base for the ZipPackage when having 2GB streams or larger. It will be disposed when the package is disposed or saved.
179+
}
180180
}
181181
//Clear the workbook so that it gets reinitialized next time
182182
this._workbook = null;

src/EPPlusTest/Longrunning Tests/LongRunningTests.cs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,47 @@ public void PerformanceIssueGetAsByteArray()
159159
SaveWorkbook("PivotTest_calculated_columns.xlsx", p);
160160
}
161161
}
162+
[TestMethod]
163+
public void PerformanceIssueLoadAndSave()
164+
{
165+
using (var p = OpenTemplatePackage("LargeWorkbookTemplate.xlsx"))
166+
{
167+
/* Raw Data Sheet only */
168+
ExcelWorksheet ws = p.Workbook.Worksheets[0]; // second sheet
169+
170+
p.Workbook.Calculate();
171+
SaveWorkbook("LargeWBSave.xlsx", p);
172+
}
173+
}
174+
[TestMethod]
175+
public void PerformanceIssueLoadAndSaveSync()
176+
{
177+
using (var p = new ExcelPackage())
178+
{
179+
var file = GetTemplateFile("LargeWorkbookTemplate.xlsx");
180+
p.Load(new FileStream(file.FullName, FileMode.Open));
181+
/* Raw Data Sheet only */
182+
ExcelWorksheet ws = p.Workbook.Worksheets[0]; // second sheet
183+
184+
p.Workbook.Calculate();
185+
}
186+
}
187+
188+
189+
[TestMethod]
190+
public async Task PerformanceIssueLoadAndSaveAsync()
191+
{
192+
using (var p = new ExcelPackage())
193+
{
194+
var file = GetTemplateFile("LargeWorkbookTemplate.xlsx");
195+
await p.LoadAsync(file);
196+
/* Raw Data Sheet only */
197+
ExcelWorksheet ws = p.Workbook.Worksheets[0]; // second sheet
198+
199+
p.Workbook.Calculate();
200+
}
201+
}
202+
162203
#endregion
163204
#region HtmlExport
164205
[TestMethod]

0 commit comments

Comments
 (0)