How to convert Excel to PDF and set custom area in C# and .NET


Processing and preparing reporting documents is an important part of business application development. A particularly common task is converting Excel spreadsheets to more universal formats, such as PDF, for information exchange, archiving, or secure data distribution. This raises the question: how can we automate the Excel to PDF conversion process, taking into account specific document areas, using C# and .NET?

One solution is to use the Excel to PDF .NET from SautinSoft library – a powerful tool for converting Excel files with high accuracy and flexibility.

Such code can be used in:

  • Corporate reporting systems: automatic preparation of statements, balance sheets, or analytical reports.
  • Integration with ERP systems: data export for further archiving.
  • Educational platforms: automatic generation of template reporting documents.
  • Accounting and finance: preparation of financial documents from a specific area to prevent leaks.

Let's look at a practical example. Let's say you have an Excel file and need to convert it to PDF, including only a specific range of cells or pages. This code becomes a valuable tool in the arsenal of a developer implementing enterprise document management solutions.

Input file:

set custom area to convert input

Output result:

set custom area to convert output

Complete code

using System;
using System.IO;
using SautinSoft;

namespace Sample
{
    class Sample
    {
        static void Main(string[] args)
        {
            // Set custom area to convert.
            ExcelToPdf x = new ExcelToPdf();
            x.PageStyle.PageSize.Letter();

            // Set PDF as output format.
            x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Pdf;

            // Let's convert only rectangle from "B6" to "C9" on sheet 1.            
            x.Sheets.PrintArea.Add("B6", "C9", new int[]{1});

            string excelFile = Path.GetFullPath(@"..\..\..\test.xlsx");
            string pdfFile = Path.ChangeExtension(excelFile, ".pdf"); ;

            try
            {
                x.ConvertFile(excelFile, pdfFile);
                System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(pdfFile) { UseShellExecute = true });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        }
    }
}

Download

Imports System
Imports System.IO
Imports SautinSoft

Module Sample

    Sub Main()
        ' Set custom area to convert.
        Dim x As New ExcelToPdf()
        x.PageStyle.PageSize.Letter()

        ' Set PDF as output format.
        x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Pdf

        ' Let's convert only rectangle from "B6" to "C9" on sheet 1.            
        x.Sheets.PrintArea.Add("B6", "C9", New Integer() {1})

        Dim excelFile As String = Path.GetFullPath("..\..\..\test.xlsx")
        Dim pdfFile As String = Path.ChangeExtension(excelFile, ".pdf")

        Try
            x.ConvertFile(excelFile, pdfFile)
            System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(pdfFile) With {.UseShellExecute = True})
        Catch ex As Exception
            Console.WriteLine(ex.Message)
            Console.ReadLine()
        End Try
    End Sub
End Module

Download

If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page).