Worksheet to Image conversion in Excel Library
14 Oct 20245 minutes to read
Assemblies Required
Refer to the following links for assemblies/nuget packages required based on platforms to convert the worksheet to image.
NOTE
Worksheet To Image conversion can be performed by referring Syncfusion.XlsIORenderer.Net.Core NuGet package in UWP platform.
Convert as bitmap
The following code shows how to convert the specified range of rows and columns in the worksheet to bitmap.
// Initialize XlsIORenderer
application.XlsIORenderer = new XlsIORenderer();
//Create a new memory stream to save the image
Stream stream = new MemoryStream();
//Convert worksheet to image and save it to stream.
worksheet.ConvertToImage(1, 1, 10, 20, stream);
// Convert as bitmap
Image image = sheet.ConvertToImage(1, 1, 10, 20);
image.Save("Sample.png", ImageFormat.Png);
'Convert as bitmap
Dim image As Image = sheet.ConvertToImage(1, 1, 10, 20)
image.Save("Sample.png", ImageFormat.Png)
Save as stream
The following code snippet shows how to save a sheet as stream.
// Initialize XlsIORenderer
application.XlsIORenderer = new XlsIORenderer();
// Converts and save as stream
MemoryStream stream = new MemoryStream();
sheet.ConvertToImage(1, 1, 10, 20, stream);
// Converts and save as stream
MemoryStream stream = new MemoryStream();
sheet.ConvertToImage(1, 1, 10, 20, ImageType.Metafile, stream);
'Converts and save as stream
Dim stream As MemoryStream = New MemoryStream()
sheet.ConvertToImage(1, 1, 10, 20, ImageType.Metafile, stream)
The complete code snippet of the previous options is given below.
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
FileStream inputStream = new FileStream(Path.GetFullPath(@"Data/InputTemplate.xlsx"), FileMode.Open, FileAccess.Read);
IWorkbook workbook = application.Workbooks.Open(inputStream);
IWorksheet sheet = workbook.Worksheets[0];
//Initialize XlsIORenderer
application.XlsIORenderer = new XlsIORenderer();
#region Save
//Saving the workbook
FileStream outputStream = new FileStream(Path.GetFullPath("Output/Image.png"), FileMode.Create, FileAccess.Write);
sheet.ConvertToImage(sheet.UsedRange, outputStream);
#endregion
//Dispose streams
outputStream.Dispose();
inputStream.Dispose();
}
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook workbook = application.Workbooks.Open("Sample.xlsx", ExcelOpenType.Automatic);
IWorksheet sheet = workbook.Worksheets[0];
//Convert as bitmap
Image image = sheet.ConvertToImage(1, 1, 10, 20);
image.Save("Sample.png", ImageFormat.Png);
//Converts and save as stream
MemoryStream stream = new MemoryStream();
sheet.ConvertToImage(1, 1, 10, 20, ImageType.Metafile, stream);
//Save the workbook to disk
workbook.SaveAs("Sample.xlsx");
//No exception will be thrown if there are unsaved workbooks
excelEngine.ThrowNotSavedOnDestroy = false;
}
Using excelEngine As ExcelEngine = New ExcelEngine()
Dim application As IApplication = excelEngine.Excel
application.DefaultVersion = ExcelVersion.Xlsx
Dim workbook As IWorkbook = application.Workbooks.Open("sample.xlsx", ExcelOpenType.Automatic)
Dim worksheet As IWorksheet = workbook.Worksheets(0)
'Convert as bitmap
Dim image As Image = worksheet.ConvertToImage(1, 1, 10, 20)
image.Save("Sample.png", ImageFormat.Png)
'Converts and save as stream
Dim stream As MemoryStream = New MemoryStream()
worksheet.ConvertToImage(1, 1, 10, 20, ImageType.Metafile, stream)
'Save the workbook to disk
workbook.SaveAs("Sample.xlsx")
'No exception will be thrown if there are unsaved workbooks.
excelEngine.ThrowNotSavedOnDestroy = False
End Using
A complete working example to convert Excel worksheet to image in C# is present on this GitHub page.
NOTE
- Instance of XlsIORenderer class is mandatory to convert the worksheet to image using .NET Standard assemblies.
- In .NET Standard, the Image format and quality can be specified using the ExportImageOptions class. By default the ImageFormat is set to PNG and ScalingMode is set to Best.
- Worksheet to image conversion is supported from .NET Framework 2.0 and .NET Standard 1.4 onwards.
Non-Supported Features:
- Subscript/Superscript
- Shrink to fit
- Complex conditional formatting