Skip to content

Commit bd1f183

Browse files
authored
Merge pull request #2352 from EPPlusSoftware/bug/issue2349
Fix for issue 2349
2 parents 773225e + 19ea96a commit bd1f183

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)