Specify spreadsheet rendering options

GroupDocs.Viewer ships with the SpreadsheetOptions class that allows you to specify different spreadsheet rendering options (for example, you can display row and column headings in the output file, render grid lines, or adjust cell text overflow). To access these options, use the SpreadsheetOptions property for one of the following classes (depending on the output file format):

Render row and column headings

Rows and columns in a worksheet have unique names displayed on the worksheet’s left and top side. Rows are numbered (1, 2, 3, …, 1048576), and columns are lettered (A, B, C, …, XFD).

Row and column headings in a worksheet

Enable the SpreadsheetOptions.render_headings property to display row and column headings in the output file when you render your spreadsheet in HTML, PDF, PNG, or JPEG format.

The following example demonstrates how to convert an Excel workbook to PDF and display row and column headings in the output PDF file:

with gv.Viewer("invoice.xlsx") as viewer:
    # Convert the spreadsheet to PDF.
    viewOptions = gvo.PdfViewOptions("output.pdf")
    # Render row and column headings.
    viewOptions.spreadsheet_options.render_headings = True
    viewer.view(viewOptions)

The following image demonstrates the result:

Render an Excel file with row and column headings to PDF

Render worksheet gridlines

Use the SpreadsheetOptions.render_grid_lines property to display gridlines (lines that separate worksheet rows and columns) in the output file.

The following code example demonstrates how to convert an Excel workbook to PDF and display gridlines in the output PDF file:

with gv.Viewer("invoice.xlsx") as viewer:
    # Convert the spreadsheet to PDF.
    viewOptions = gvo.PdfViewOptions("output.pdf")
    # Render grid lines.
    viewOptions.spreadsheet_options.render_grid_lines = True
    viewer.view(viewOptions)

The following image demonstrates the result:

Render an Excel file with gridlines to PDF

Control cell text overflow

The SpreadsheetOptions.text_overflow_mode option allows you to prevent text overflow in worksheet cells (see the image below) when you convert your spreadsheet file to HTML, PDF, or image format.

Text overflow in a cell

You can set the text_overflow_mode property to one of the following values:

The following example demonstrates how to set this option in code:

with gv.Viewer("invoice.xlsx") as viewer:
    # Convert the spreadsheet to PDF.
    viewOptions = gvo.PdfViewOptions("output.pdf")
    # Specify the AUTO_FIT_COLUMN mode.
    viewOptions.spreadsheet_options.text_overflow_mode = gvo.TextOverflowMode.AUTO_FIT_COLUMN 
    viewer.view(viewOptions)

Render hidden rows and columns

Use the ViewOptions.SpreadsheetOptions.render_hidden_rows and ViewOptions.SpreadsheetOptions.render_hidden_columns properties to display hidden rows and columns in the output file when you render your spreadsheet in HTML, PDF, PNG, or JPEG format.

The example below demonstrates how to set this option in code. The rows 20 and 21 and the column E are hidden in the source Excel workbook.

Hidden rows and columns in a worksheet

with gv.Viewer("invoice.xlsx") as viewer:
    # Convert the spreadsheet to PDF.
    viewOptions = gvo.PdfViewOptions("output.pdf")
    # Enable rendering hidden rows and columns.
    viewOptions.spreadsheet_options.render_hidden_columns = True
    viewOptions.spreadsheet_options.render_hidden_rows = True
    viewer.view(viewOptions)

The image below demonstrates the result. Hidden rows and columns appear in the generated PDF file.

Hidden rows and columns in a worksheet

Render hidden worksheets

If your spreadsheet file contains hidden worksheets, enable the ViewOptions.render_hidden_pages property to display data from hidden worksheets in the output HTML, PDF, or image files.

The following example demonstrates how to set this option in code:

with gv.Viewer("invoice.xlsx") as viewer:
    # Convert the spreadsheet to PDF.
    viewOptions = gvo.PdfViewOptions("output.pdf")
    # Enable rendering hidden pages.
    viewOptions.render_hidden_pages = True
    viewer.view(viewOptions)

Skip empty rows and columns

GroupDocs.Viewer supports the SpreadsheetOptions.skip_empty_rows and SpreadsheetOptions.skip_empty_columns properties that allow you to skip blank rows and columns when you convert your spreadsheet file to HTML, PDF, or image format.

with gv.Viewer("invoice.xlsx") as viewer:
    # Convert the spreadsheet to PDF.
    viewOptions = gvo.PdfViewOptions("output.pdf")
    # Enable skipping blank rows and columns.
    viewOptions.spreadsheet_options.skip_empty_columns = True
    viewOptions.spreadsheet_options.skip_empty_rows = True
    viewer.view(viewOptions)

The following image demonstrates the result:

Skip empty columns and rows

Render cell comments

Use the ViewOptions.render_comments option to display cell comments in the output file when you render your spreadsheet in HTML, PDF, PNG, or JPEG format.

with gv.Viewer("invoice.xlsx") as viewer:
    # Convert the spreadsheet to PNG.
    # {0} is replaced with the current page number in the file names.
    viewOptions = gvo.PngViewOptions("output_{0}.png")
    # Enable rendering comments.
    viewOptions.render_comments = True
    viewer.view(viewOptions)

The following image demonstrates the result:

Render cell comments

Set worksheet margins in the output pdf pages

Use the SpreadsheetOptions.render_grid_lines properties to set margins for worksheets in the output pdf. If margins are set to value less than 0 or not set then default value will be used.

The following code example demonstrates how to convert an Excel workbook to PDF and set optional margins for worksheets in the output PDF file:

with gv.Viewer("invoice.xlsx") as viewer:
    viewOptions = gvo.PdfViewOptions("output.pdf")

    # Set margins for worksheets in the output pdf pages
    viewOptions.spreadsheet_options.left_margin = 0;
    viewOptions.spreadsheet_options.right_margin = 0.5;
    viewOptions.spreadsheet_options.top_margin = 1;
    viewOptions.spreadsheet_options.bottom_margin = -10; # set to default value
    viewer.view(viewOptions)

The following image demonstrates the result:

Render an Excel file with worksheet margins on page to PDF