How can I help you?
How to compute the size of the Excel file?
24 Jun 20264 minutes to read
To compute the size of an Excel file using Syncfusion XlsIO, you can save the workbook to a memory stream and then get its length in bytes. This method avoids saving the file to disk just to measure its size.
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook workbook = application.Workbooks.Create(1);
IWorksheet worksheet = workbook.Worksheets[0];
worksheet.Range["A1"].Text = "Sample Data";
//Save to memory stream
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveAs(stream);
//Compute file size in bytes
long sizeInBytes = stream.Length;
Console.WriteLine($"File size: {sizeInBytes} bytes");
//Convert to KB
double sizeInKB = sizeInBytes / 1024.0;
Console.WriteLine($"File size: {sizeInKB:F2} KB");
}
}using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook workbook = application.Workbooks.Create(1);
IWorksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Sample Excel File";
//Save to memory stream
using (MemoryStream memoryStream = new MemoryStream())
{
workbook.SaveAs(memoryStream);
//Compute file size in bytes
long sizeInBytes = memoryStream.Length;
Console.WriteLine($"File size: {sizeInBytes} bytes");
//Convert to KB
double sizeInKB = sizeInBytes / 1024.0;
Console.WriteLine($"File size: {sizeInKB:F2} KB");
}
}Using excelEngine As ExcelEngine = New ExcelEngine()
Dim application As IApplication = excelEngine.Excel
application.DefaultVersion = ExcelVersion.Xlsx
Dim workbook As IWorkbook = application.Workbooks.Create(1)
Dim sheet As IWorksheet = workbook.Worksheets(0)
sheet.Range("A1").Text = "Excel Size Sample"
'Save to memory stream
Using memoryStream As New MemoryStream()
workbook.SaveAs(memoryStream)
'Compute file size in bytes
Dim sizeInBytes As Long = memoryStream.Length
Console.WriteLine("Excel File Size: " & sizeInBytes & " bytes")
'Convert to KB
Dim sizeInKB As Double = sizeInBytes / 1024.0
Console.WriteLine("Excel File Size: " & sizeInKB.ToString("F2") & " KB")
End Using
End UsingA complete working example to compute the size of the Excel file in C# is present on this GitHub page.