We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Convert Excel to PDF with Azure function in .NETStandard application

Platform: ASP.NET Core |
Control: XlsIO |
Published Date: March 29, 2019 |
Last Revised Date: April 9, 2019

Syncfusion Excel (XlsIO) library is a .NET Excel library used to create, read, and edit Excel documents. Using this library, you can convert Excel documents into PDF in Azure functions.

Steps to convert Excel to PDF with Azure functions in NETStandard application programmatically:

Step 1: Create a new Azure function project.

Create a Azure function project.

Create a new Azure function project

Step 2: Select framework Azure Functions v2 (.NET Standard) and select HTTP trigger as follows.

Select Framework Azure functions V2

Select framework and HTTP trigger

Step 3: Install the Syncfusion.XlsIORenderer.Net.Core NuGet package as a reference to your .NET Standard applications from NuGet.org.

Install NuGet package

Step 4: Include the following namespaces in Function1.cs file.

C#

using System.IO;
using Syncfusion.XlsIO;
using Syncfusion.XlsIORenderer;
using Syncfusion.Pdf;
using System.Net.Http.Headers;

 

Step 5: Add the following code snippet to open and modify Excel document in Azure functions and return the output document to client end.

C#

[FunctionName("Function1")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
    Stream stream = req.Content.ReadAsStreamAsync().Result;
    //Instantiate the spreadsheet creation engine
    using (ExcelEngine excelEngine = new ExcelEngine())
    {
        //Instantiate the Excel application object
        IApplication application = excelEngine.Excel;
 
        //Assigns default application version
        application.DefaultVersion = ExcelVersion.Excel2013;
 
        IWorkbook workbook = application.Workbooks.Open(stream);
 
        //Access a worksheet from workbook
        IWorksheet worksheet = workbook.Worksheets[0];
 
        //Open the Excel document to Convert
        XlsIORenderer renderer = new XlsIORenderer();
 
        //Initialize PDF document
        PdfDocument pdfDocument = new PdfDocument();
 
        //Convert Excel document into PDF document
        pdfDocument = renderer.ConvertToPDF(workbook);
 
        MemoryStream memoryStream = new MemoryStream();
 
        //Save the PDF file
        pdfDocument.Save(memoryStream);
 
        //Create the response to return
        HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
 
        //Set the PDF document content response
        response.Content = new ByteArrayContent(memoryStream.ToArray());
 
        //Set the contentDisposition as attachment
        response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "Output.pdf"
        };
        //Set the content type as PDF format mime type
        response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
 
        //Return the response with output PDF stream
        return response;
    }
}

Step 6: Right-click the project and select Publish. Then, create a new profile in the Publish Window.

Publish window screenshot

Publish window

Step 7: Create App service using Azure subscription and select a hosting plan.App Service screenshot

Create App Service

Note:

Syncfusion XlsIO library will work from basic hosting plan (B1). So, select the hosing plan as needed. Syncfusion XlsIO library will not work if the hosting plan is Consumption.

 

Configure hosting plan

Configure Hosting Plan

Step 8: After creating the profile, click the Publish button.

Publish

Step 9: Now, go to Azure portal and select the App Services. After running the service, click Get function URL by copying it. Then, paste it to the below client sample (Which will request the Azure Function, to convert Excel to PDF with Azure functions). You will get the PDF document as shown below.

Output pdf document

Output PDF document

A complete Azure function sample can be downloaded from Convert ExcelToPDF from Azure Function.zip.

Steps to post the request to Azure function with template Excel document:

  1. Create simple console application to request the Azure function API.
  2. Add the following code snippet into Main method to request the Azure function with template Excel document and get the converted PDF document.

C#

//Open the required template Excel file
Stream fileStream = File.Open(@"../../Data/Input.xlsx", FileMode.Open);
 
//Create memory stream to save the template
MemoryStream inputStream = new MemoryStream();
 
//Copy the file stream into memory stream
fileStream.CopyTo(inputStream);
 
//Dispose the file stream
fileStream.Dispose();
try
{
    //Create HttpWebRequest with hosted azure function URL
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create("Your Azure function url");
 
    //Set request method as POST
    req.Method = "POST";
 
    //Get the request stream to strore the Excel document stream
    Stream stream = req.GetRequestStream();
 
    //Write the Excel document stream into request stream
    stream.Write(inputStream.ToArray(), 0, inputStream.ToArray().Length);
 
    //Gets the responce from the Azure Function request
    HttpWebResponse res = (HttpWebResponse)req.GetResponse();
 
    //Create file stream to save the output PDF file
    FileStream outStream = File.Create("Sample.pdf");
 
    //Copy the responce stream into file stream
    res.GetResponseStream().CopyTo(outStream);
 
    //Dispose the input stream
    inputStream.Dispose();
 
    //Dispose the file stream
    outStream.Dispose();
}
catch (Exception ex)
{
    throw;
}
 
//Launch the output document
System.Diagnostics.Process.Start("Sample.pdf");

 

Console application can be downloaded from DownloadConvertedPDF.zip.

Know more about Essential (XlsIO) library through the documentation, where you can find features like charts , drawing objects, chart to image conversion and worksheet to image conversion etc. with respective code examples.

Refer here to explore the rich set of Syncfusion Excel (XlsIO) library features.

Note:

Starting with v16.2.0.x, if you reference Syncfusion assemblies from trial setup or from the NuGet feed, include a license key in your projects. Refer the link to learn about generating and registering Syncfusion license key in your application to use the components without trail message.

 

2X faster development

The ultimate ASP.NET Core UI toolkit to boost your development speed.
ADD COMMENT
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile