Add watermarks to spreadsheet documents

Adding watermark to a particular worksheet

This sample adds either a text or image watermark to specific worksheets by index within a workbook.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.options.spreadsheet as gwo_xls

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    text_watermark = gww.TextWatermark("Test watermark", gww.Font("Arial", 8.0))
    text_opts = gwo_xls.SpreadsheetWatermarkShapeOptions()
    text_opts.worksheet_index = 0
    watermarker.add(text_watermark, text_opts)

    with gww.ImageWatermark("logo.jpg") as image_watermark:
        img_opts = gwo_xls.SpreadsheetWatermarkShapeOptions()
        img_opts.worksheet_index = 1
        watermarker.add(image_watermark, img_opts)

    watermarker.save("spreadsheet.xlsx")

Getting size of content area

This sample retrieves worksheet content dimensions and row/column sizes for precise watermark sizing.

import groupdocs.watermark as gw
import groupdocs.watermark.contents.spreadsheet as gwc_xls

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    content = watermarker.get_content(gwc_xls.SpreadsheetContent)
    print(content.worksheets[0].content_area_height)
    print(content.worksheets[0].content_area_width)
    print(content.worksheets[0].get_column_width(0))
    print(content.worksheets[0].get_row_height(0))

Adding watermark to the images from a particular worksheet

This sample finds all embedded images in a worksheet and overlays a centered, rotated text watermark on each.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.common as gwc
import groupdocs.watermark.contents.spreadsheet as gwc_xls

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    watermark = gww.TextWatermark("Protected image", gww.Font("Arial", 8.0))
    watermark.horizontal_alignment = gwc.HorizontalAlignment.CENTER
    watermark.vertical_alignment = gwc.VerticalAlignment.CENTER
    watermark.rotate_angle = 45
    watermark.sizing_type = gww.SizingType.SCALE_TO_PARENT_DIMENSIONS
    watermark.scale_factor = 1.0

    content = watermarker.get_content(gwc_xls.SpreadsheetContent)
    images = content.worksheets[0].find_images()
    for image in images:
        image.add(watermark)
    watermarker.save("spreadsheet.xlsx")

Different types of watermark in Excel documents

These samples cover multiple watermark types and options available for spreadsheets, including shapes, WordArt, backgrounds, and headers/footers.

Shapes and WordArt

This sample demonstrates adding shape-based text watermarks using modern WordArt options to a specific worksheet.

Use SpreadsheetWatermarkShapeOptions or SpreadsheetWatermarkModernWordArtOptions when adding shape-based text watermarks.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.options.spreadsheet as gwo_xls

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    text_watermark = gww.TextWatermark("Test watermark", gww.Font("Arial", 8.0))
    options = gwo_xls.SpreadsheetWatermarkModernWordArtOptions()
    options.worksheet_index = 0
    watermarker.add(text_watermark, options)
    watermarker.save("spreadsheet.xlsx")

Shape additional options

This sample sets extra shape properties (name, alt text, lock state) when adding a text watermark shape.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.options.spreadsheet as gwo_xls

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    watermark = gww.TextWatermark("Test watermark", gww.Font("Segoe UI", 19.0))
    options = gwo_xls.SpreadsheetWatermarkShapeOptions()
    options.name = "Shape 1"
    options.alternative_text = "Test watermark"
    options.is_locked = True
    watermarker.add(watermark, options)
    watermarker.save("spreadsheet.xlsx")

Text effects

This sample configures line and outline text effects for shape-based text watermarks using spreadsheet-specific effects.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.options.spreadsheet as gwo_xls
import groupdocs.watermark.common as gwc

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    watermark = gww.TextWatermark("Test watermark", gww.Font("Segoe UI", 19.0))
    effects = gwo_xls.SpreadsheetTextEffects()
    effects.line_format.enabled = True
    effects.line_format.color = gww.Color.red
    effects.line_format.dash_style = gwc.OfficeDashStyle.DASH_DOT_DOT
    effects.line_format.line_style = gwc.OfficeLineStyle.TRIPLE
    effects.line_format.weight = 1
    options = gwo_xls.SpreadsheetWatermarkShapeOptions()
    options.effects = effects
    watermarker.add(watermark, options)
    watermarker.save("spreadsheet.xlsx")

Image effects

This sample applies image processing effects (brightness, contrast, chroma key, border) to an image watermark.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.options.spreadsheet as gwo_xls

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    with gww.ImageWatermark("logo.png") as watermark:
        effects = gwo_xls.SpreadsheetImageEffects()
        effects.brightness = 0.7
        effects.contrast = 0.6
        effects.chroma_key = gww.Color.red
        effects.border_line_format.enabled = True
        effects.border_line_format.weight = 1
        options = gwo_xls.SpreadsheetWatermarkShapeOptions()
        options.effects = effects
        watermarker.add(watermark, options)
    watermarker.save("spreadsheet.xlsx")

Worksheet backgrounds

This sample adds an image as a worksheet background watermark using background-specific options.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.options.spreadsheet as gwo_xls

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    with gww.ImageWatermark("logo.gif") as watermark:
        options = gwo_xls.SpreadsheetBackgroundWatermarkOptions()
        watermarker.add(watermark, options)
    watermarker.save("spreadsheet.xlsx")

Worksheet background image size

This sample sizes a watermark to fit the worksheet content area using pixel-based background dimensions.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.options.spreadsheet as gwo_xls
import groupdocs.watermark.contents.spreadsheet as gwc_xls
import groupdocs.watermark.common as gwc

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    watermark = gww.TextWatermark("Test watermark", gww.Font("Segoe UI", 19.0))
    watermark.horizontal_alignment = gwc.HorizontalAlignment.CENTER
    watermark.vertical_alignment = gwc.VerticalAlignment.CENTER
    watermark.rotate_angle = 90
    watermark.sizing_type = gww.SizingType.SCALE_TO_PARENT_DIMENSIONS
    watermark.scale_factor = 0.5
    watermark.opacity = 0.5

    content = watermarker.get_content(gwc_xls.SpreadsheetContent)
    options = gwo_xls.SpreadsheetBackgroundWatermarkOptions()
    options.background_width = content.worksheets[0].content_area_width_px
    options.background_height = content.worksheets[0].content_area_height_px
    watermarker.add(watermark, options)
    watermarker.save("spreadsheet.xlsx")

This sample adds an image watermark into worksheet headers or footers with alignment and scaling options.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.options.spreadsheet as gwo_xls
import groupdocs.watermark.common as gwc

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    with gww.ImageWatermark("logo.png") as watermark:
        watermark.vertical_alignment = gwc.VerticalAlignment.TOP
        watermark.horizontal_alignment = gwc.HorizontalAlignment.CENTER
        watermark.sizing_type = gww.SizingType.SCALE_TO_PARENT_DIMENSIONS
        watermark.scale_factor = 1.0
        options = gwo_xls.SpreadsheetWatermarkHeaderFooterOptions()
        options.worksheet_index = 0
        watermarker.add(watermark, options)
    watermarker.save("spreadsheet.xlsx")

This sample inserts a formatted text watermark into worksheet headers or footers with alignment controls.

import groupdocs.watermark as gw
import groupdocs.watermark.watermarks as gww
import groupdocs.watermark.options.spreadsheet as gwo_xls
import groupdocs.watermark.common as gwc

load_options = gw.SpreadsheetLoadOptions()
with gw.Watermarker("spreadsheet.xlsx", load_options) as watermarker:
    watermark = gww.TextWatermark("Test watermark", gww.Font("Segoe UI", 19.0, gww.FontStyle.BOLD))
    watermark.foreground_color = gww.Color.red
    watermark.background_color = gww.Color.aqua
    watermark.vertical_alignment = gwc.VerticalAlignment.TOP
    watermark.horizontal_alignment = gwc.HorizontalAlignment.CENTER
    options = gwo_xls.SpreadsheetWatermarkHeaderFooterOptions()
    options.worksheet_index = 0
    watermarker.add(watermark, options)
    watermarker.save("spreadsheet.xlsx")

Advanced use cases

Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.