使用 Epplus LoadFromCollection() 向现有 Excel sheet 添加数据会损坏 Excel 工作簿
Adding data to the existing Excel sheet using Epplus LoadFromCollection() is corrupting the Excel Workbook
我存储了一个 Excel 模板,其中包含大约 25 张纸,其中已经存储了一些标准数据。然后我获取相同的模板并使用 LoadFromCollection
破坏工作簿的方法将数据填充到其中的现有工作表中;我收到一个错误
File Is corrupt cannot be opened
获取存储在S3中的文件并将responseStream传给ExcelPackage。 Worksheet1 在第 4 行和第 4 列之前的单元格中有一些数据。
List listOfDummyData = someData;
MemoryStream outPutStream = new MemoryStream();
using (ExcelPackage excelPackage = new ExcelPackage(file.ResponseStream))
{
ExcelWorksheets workSheets = excelPackage.Workbook.Worksheets;
var worksheet = workSheets["worksheet1"];
worksheet.Cells[4, 4, 4, 9].Clear();
worksheet.Cells[4, 4, 4, 9].LoadFromCollection(listOfDummyData);
workSheets.saveAs(outPutStream);
}
同样,这个 outPutStream
存储到 aws S3。并且再次下载文件时,文件会损坏。
这里的 worksheet.Cells[4, 4, 4, 9].Clear();
行是罪魁祸首,Clear 方法正在删除用于导致文件损坏的所有现有单元格格式。
我存储了一个 Excel 模板,其中包含大约 25 张纸,其中已经存储了一些标准数据。然后我获取相同的模板并使用 LoadFromCollection
破坏工作簿的方法将数据填充到其中的现有工作表中;我收到一个错误
File Is corrupt cannot be opened
获取存储在S3中的文件并将responseStream传给ExcelPackage。 Worksheet1 在第 4 行和第 4 列之前的单元格中有一些数据。
List listOfDummyData = someData;
MemoryStream outPutStream = new MemoryStream();
using (ExcelPackage excelPackage = new ExcelPackage(file.ResponseStream))
{
ExcelWorksheets workSheets = excelPackage.Workbook.Worksheets;
var worksheet = workSheets["worksheet1"];
worksheet.Cells[4, 4, 4, 9].Clear();
worksheet.Cells[4, 4, 4, 9].LoadFromCollection(listOfDummyData);
workSheets.saveAs(outPutStream);
}
同样,这个 outPutStream
存储到 aws S3。并且再次下载文件时,文件会损坏。
这里的 worksheet.Cells[4, 4, 4, 9].Clear();
行是罪魁祸首,Clear 方法正在删除用于导致文件损坏的所有现有单元格格式。