Hi Aspose team,
I’m using Aspose Cells, Version 22.1
When I remove macro in xls file, output file size decrease a little (246KB -> 219KB). After that, I re-use this process for the output file, the file size is reduced from 219KB to 28KB. I see stream capacity and stream size at second time is many times lower
Why file size is reduced so many times? Is data lost in SaveToStream() ?
I tried replacing with workbook.Save(outputXlsFile) but received the same result.
Here is my current code:
using(var inStream = new FileStream(inputXlsFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
var opt = new LoadOptions
{
MemorySetting = MemorySetting.MemoryPreference
};
workbook = new Workbook(inStream, opt);
string nameOfSheet = string.Empty;
foreach(var wooksheet in workbook.Worksheets)
{
if(wooksheet.IsVisible)
{
nameOfSheet = wooksheet.Name;
break;
}
}
if(workbook.HasMacro)
{
workbook.RemoveMacro();
}
bool hasVisibleWorksheet = false;
foreach(var worksheet in workbook.Worksheets)
{
if(worksheet.IsVisible)
{
hasVisibleWorksheet = true;
break;
}
}
if(!hasVisibleWorksheet)
workbook.Worksheets.Add(nameOfSheet);
Stream stream = workbook.SaveToStream();
using(var cf = new OpenMcdf.CompoundFile(stream))
{
cf.Save(outputXlsFile);
}
}
Attached sample below. Please help me check. Thanks!
Sample.zip (391.2 KB)
image.png (9.0 KB)