Pipelines
Pipelines are custom automated workflows that operate on local Excel or spreadsheet files on your machine. They are designed to automate repetitive tasks, such as data cleaning, transformation, transfer and reporting. Each pipeline consists of a trigger and a series of actions that insert, modify or delete cells, worksheets or entire workbooks.
Pipelines are defined in a JSON format. The pipelines are stored in a dedicated folder, named "Pipelines", within the same directory as the XLSXPipeline executable.
XLSXPipeline.exe
Pipelines/
├── CleanReport.json
├── TransferSalesData.json
├── ApplyAnalytics.json
└── UpdateLeads.json
Example
{
"pipelineName": "Generate Monthly Sales Summary",
"trigger": {
"type": "OnChange",
"path": "C:\\Sales\\Monthly\\SalesData.xlsx"
},
"actions": [
{
"type": "CopySheet",
"sourceSheetName": "Template",
"newSheetName": "Summary"
},
{
"type": "SetCellValue",
"sheetName": "Summary",
"cellAddress": "A1",
"value": "Monthly Summary - {month} {year}"
},
{
"type": "ApplyFormula",
"sheetName": "Summary",
"cellAddress": "B2",
"formula": "=SUM(Sales!B2:D2)"
},
{
"type": "CopyFile",
"destinationPath": "C:\\Sales\\Summaries\\",
"fileName": "Summary_{month}_{year}.xlsx"
}
]
} Triggers
| Trigger | Description |
|---|---|
| Once | Triggers once, as soon as the XLSXPipeline service starts. Takes an optional file path that will be used as the file path for any relevant actions that do not provide a file path. |
| Cron Expressions | Triggers on a scheduled basis determined by a cron expression. Takes an optional file path that will be used as the file path for any relevant actions that do not provide a file path. |
| Natural Language | Triggers on a scheduled basis determined by a simple natural language option. Examples: 'Every 5 minutes', 'Every 2 hours', 'Every day', 'Every week', 'At 6:15pm'. To be used as a simpler alternative to cron expressions, although cron expressions are preferred. Takes an optional file path that will be used as the file path for any relevant actions that do not provide a file path. |
| OnChange | Triggers when a file is updated or if contents of the directory are changed. Requires a path to a file or directory that will be watched for any changes. |
| OnNewFile | Triggers when a new file is created in the directory. Requires a path to a directory that will be watched for any new files. |
Actions
Action Description File
CreateFile Creates a new file at the specified destination.
destinationPath (optional) — directory or full path for the new file.
fileName (optional) — file name if not included in destinationPath.
content (optional) — text content to write; omit to create an empty file.
overwriteIfExists (optional, default true) — overwrite if already exists.
{
"type": "CreateFile",
"destinationPath": "C:\Sales\Monthly\",
"fileName": "SalesData.xlsx"
} DeleteFile Deletes the pipeline's current file or an explicitly specified file.
ignoreIfNotExists (optional, default true) — silently skip if the file does not exist.
backupDirectory (optional) — copy the file here before deleting.
{
"type": "DeleteFile"
} CopyFile Makes a copy of a file to the given destination.
destinationPath (required) — directory or full file path for the copy.
fileName (optional) — override name for the copied file; supports date placeholders.
overwriteIfExists (optional, default true) — overwrite if a file already exists at the destination.
{
"type": "CopyFile",
"destinationPath": "C:\Sales\Summaries\",
"fileName": "SalesData_{month}_{year}.xlsx"
} MoveFile Moves a file to a new location, optionally renaming it.
destinationPath (required) — directory or full file path to move to.
fileName (optional) — new name at the destination; supports date placeholders.
overwriteIfExists (optional, default false) — overwrite an existing file at the destination.
{
"type": "MoveFile",
"destinationPath": "C:\Sales\Archive\"
} RenameFile Renames the current file in place.
newName (required) — new file name or full destination path; supports date placeholders.
{
"type": "RenameFile",
"newName": "SalesData_{year}.xlsx"
} ImportCSV Imports data from a CSV file into a worksheet, starting at a given cell.
csvFilePath (required) — path to the source CSV file; supports date placeholders.
sheetName (optional) — destination sheet; defaults to the first sheet.
startCell (optional, default "A1") — top-left cell where data is written.
delimiter (optional, default ",") — column separator.
clearExistingData (optional, default false) — clear the destination area before import.
{
"type": "ImportCSV",
"csvFilePath": "C:\Sales\Monthly\export.csv",
"sheetName": "Sheet1",
"startCell": "A1"
} SplitSheetsToFiles Saves each visible sheet as its own separate .xlsx file in the given directory.
outputDirectory (required) — folder where the per-sheet files will be written.
fileNamePrefix (optional) — prefix prepended to each sheet name when naming the output file.
createDirectories (optional, default true) — create the output folder if it does not exist.
{
"type": "SplitSheetsToFiles",
"outputDirectory": "C:\Sales\Sheets\"
} ProtectFile Password-protects the workbook (structure protection).
password (required) — password to apply.
{
"type": "ProtectFile",
"password": "mysecretpassword"
} UnprotectFile Removes workbook-level password protection.
password (required) — existing password to unlock the workbook.
{
"type": "UnprotectFile",
"password": "mysecretpassword"
} ExportToCSV Exports a worksheet to a CSV file.
outputPath (optional) — directory or full path for the CSV output.
fileName (optional) — override file name; supports date placeholders.
sheetName (optional) — sheet to export; defaults to the first sheet.
delimiter (optional, default ",") — column separator.
includeHeaders (optional, default true) — include the header row.
{
"type": "ExportToCSV",
"outputPath": "C:\Sales\Monthly\",
"fileName": "SalesData_{month}.csv"
} ExportToPDF Exports a worksheet to a PDF file.
outputPath (optional) — directory or full path for the PDF output.
fileName (optional) — override file name; supports date placeholders.
sheetName (optional) — sheet to export; defaults to the first sheet.
paperSize (optional, default "A4") — paper size (e.g. "A4", "Letter").
orientation (optional, default "Portrait") — "Portrait" or "Landscape".
{
"type": "ExportToPDF",
"outputPath": "C:\Sales\Reports\",
"fileName": "SalesData_{month}.pdf",
"orientation": "Landscape"
} OpenFile Opens the file using the default system application for that file type.
No additional properties are required.
{
"type": "OpenFile"
} Worksheet
AddSheet Adds a new blank worksheet to the workbook.
sheetName (optional) — name for the new sheet; defaults to the next available "SheetN" name.
{
"type": "AddSheet",
"sheetName": "Summary"
} CopySheet Copies a worksheet, optionally into a different workbook.
sourceSheetName (optional) — sheet to copy; defaults to the first sheet.
newSheetName (optional) — name for the copied sheet.
targetFilePath (optional) — copy into a different workbook instead of the current one.
{
"type": "CopySheet",
"sourceSheetName": "Template",
"newSheetName": "Sheet1"
} DeleteSheet Permanently deletes a worksheet from the workbook.
sheetName (optional) — sheet to delete; defaults to the first sheet.
{
"type": "DeleteSheet",
"sheetName": "Sheet1"
} DeleteHiddenSheets Deletes all hidden and very-hidden sheets in the workbook. Takes no additional properties.
{
"type": "DeleteHiddenSheets"
} RenameSheet Renames an existing worksheet.
sheetName (optional) — current sheet name; defaults to the first sheet.
newSheetName (required) — new name for the sheet; supports date placeholders.
{
"type": "RenameSheet",
"sheetName": "Sheet1",
"newSheetName": "Sales_{month}_{year}"
} MoveSheet Moves a worksheet to a different tab position, or into a different workbook.
sheetName (optional) — sheet to move; defaults to the first sheet.
targetIndex (optional, default 1) — 1-based tab position to move the sheet to.
targetFilePath (optional) — move the sheet into a different workbook.
{
"type": "MoveSheet",
"sheetName": "Summary",
"targetIndex": 1
} ReplaceSheet Replaces the contents of one sheet with a copy of another sheet, preserving the target sheet's position.
targetSheetName (optional) — sheet to be replaced; defaults to the first sheet.
sourceSheetName (optional) — sheet to copy from within the same workbook.
sourceFilePath (optional) — copy the replacement sheet from a different workbook.
{
"type": "ReplaceSheet",
"targetSheetName": "Report",
"sourceSheetName": "Template"
} ProtectSheet Applies password protection to a worksheet.
sheetName (optional) — sheet to protect; defaults to the first sheet.
password (required) — password to lock the sheet.
{
"type": "ProtectSheet",
"sheetName": "Sheet1",
"password": "sheetpassword"
} UnprotectSheet Removes password protection from a worksheet.
sheetName (optional) — sheet to unprotect; defaults to the first sheet.
password (required) — current password of the protected sheet.
{
"type": "UnprotectSheet",
"sheetName": "Sheet1",
"password": "sheetpassword"
} HideSheet Hides a worksheet from the tab bar.
sheetName (optional) — sheet to hide; defaults to the first sheet.
veryHidden (optional, default false) — when true, the sheet cannot be unhidden via the Excel UI.
{
"type": "HideSheet",
"sheetName": "RawData"
} UnhideSheet Makes a hidden or very-hidden worksheet visible again.
sheetName (required) — exact name of the sheet to unhide.
{
"type": "UnhideSheet",
"sheetName": "RawData"
} FreezePane Freezes a number of rows and/or columns from the top-left of the sheet.
sheetName (optional) — sheet to freeze; defaults to the first sheet.
rows (optional, default 0) — number of rows to freeze from the top.
columns (optional, default 0) — number of columns to freeze from the left.
{
"type": "FreezePane",
"sheetName": "Sheet1",
"rows": 1
} SetSheetTabColor Sets the colour of a sheet's tab in the workbook.
sheetName (optional) — sheet to recolor; defaults to the first sheet.
color (optional) — hex string (e.g. "#FF0000") or named color (e.g. "Red"); omit or leave empty to reset.
{
"type": "SetSheetTabColor",
"sheetName": "Sheet1",
"color": "#4CAF50"
} SetPrintArea Defines (or clears) the print area for a worksheet.
sheetName (optional) — sheet to configure; defaults to the first sheet.
range (optional) — cell range to set as the print area, e.g. "A1:H50"; omit to clear the print area.
{
"type": "SetPrintArea",
"sheetName": "Sheet1",
"range": "A1:H50"
} SetPageOrientation Sets the print page orientation for a worksheet.
sheetName (optional) — sheet to configure; defaults to the first sheet.
orientation (required) — "Portrait" or "Landscape".
{
"type": "SetPageOrientation",
"sheetName": "Sheet1",
"orientation": "Landscape"
} SetPageMargins Sets the print page margins for a worksheet (in inches).
sheetName (optional) — sheet to configure; defaults to the first sheet.
left, right, top, bottom, header, footer (all optional) — margin values in inches; omit any to leave unchanged.
{
"type": "SetPageMargins",
"sheetName": "Sheet1",
"top": 1.0,
"bottom": 1.0,
"left": 0.75,
"right": 0.75
} SetHeaderFooter Sets the printed header and/or footer text sections for a worksheet.
sheetName (optional) — sheet to configure; defaults to the first sheet.
leftHeader, centerHeader, rightHeader (all optional) — header section text.
leftFooter, centerFooter, rightFooter (all optional) — footer section text.
{
"type": "SetHeaderFooter",
"sheetName": "Sheet1",
"centerHeader": "Monthly Sales Report",
"centerFooter": "Page &P of &N"
} AddNamedRange Defines a named range in the workbook or worksheet scope.
name (required) — name for the range.
range (required) — cell range to name, e.g. "A1:D10".
sheetName (optional) — sheet where the range resides; defaults to the first sheet.
scope (optional, default "Workbook") — "Workbook" or "Worksheet".
{
"type": "AddNamedRange",
"sheetName": "Sheet1",
"name": "SalesData",
"range": "A1:D100"
} SetZoom Sets the zoom level of a worksheet view.
sheetName (optional) — sheet to zoom; defaults to the first sheet.
zoomScale (required) — zoom percentage between 10 and 400.
{
"type": "SetZoom",
"sheetName": "Sheet1",
"zoomScale": 75
} Data
InsertRow Inserts one or more blank rows above the specified row number, shifting existing rows down.
sheetName (optional) — sheet to modify; defaults to the first sheet.
rowNumber (required) — 1-based row number above which the new rows are inserted.
count (optional, default 1) — number of rows to insert.
{
"type": "InsertRow",
"sheetName": "Sheet1",
"rowNumber": 2,
"count": 1
} DeleteRow Deletes one or more rows, shifting subsequent rows up.
sheetName (optional) — sheet to modify; defaults to the first sheet.
rowNumber (required) — 1-based row number to start deleting from.
count (optional, default 1) — number of rows to delete.
{
"type": "DeleteRow",
"sheetName": "Sheet1",
"rowNumber": 5,
"count": 2
} CopyRow Copies one or more rows to another position within the same workbook, optionally inserting new rows at the destination.
sheetName (optional) — source sheet; defaults to the first sheet.
sourceRow (required) — 1-based row number to copy from.
destinationRow (required) — 1-based row number to copy to.
count (optional, default 1) — number of rows to copy.
destinationSheetName (optional) — copy to a different sheet in the same workbook.
insertRows (optional, default false) — insert new rows at the destination instead of overwriting.
{
"type": "CopyRow",
"sheetName": "Sheet1",
"sourceRow": 2,
"destinationRow": 10
} MoveRow Moves one or more rows to a different position in the sheet.
sheetName (optional) — sheet to modify; defaults to the first sheet.
from (required) — 1-based starting row number to move.
to (required) — 1-based destination row number.
count (optional, default 1) — number of consecutive rows to move.
{
"type": "MoveRow",
"sheetName": "Sheet1",
"from": 5,
"to": 2
} InsertColumn Inserts one or more blank columns before the specified column, shifting existing columns right.
sheetName (optional) — sheet to modify; defaults to the first sheet.
columnName (required) — column letter or 1-based number before which columns are inserted.
count (optional, default 1) — number of columns to insert.
{
"type": "InsertColumn",
"sheetName": "Sheet1",
"columnName": "C"
} DeleteColumn Deletes one or more columns, shifting subsequent columns left.
sheetName (optional) — sheet to modify; defaults to the first sheet.
columnName (required) — column letter or 1-based number to start deleting from.
count (optional, default 1) — number of columns to delete.
{
"type": "DeleteColumn",
"sheetName": "Sheet1",
"columnName": "D",
"count": 2
} CopyColumn Copies one or more columns to another position, optionally into a different sheet or workbook.
sheetName (optional) — source sheet; defaults to the first sheet.
from (required) — source column letter or number.
to (required) — destination column letter or number.
count (optional, default 1) — number of consecutive columns to copy.
targetSheetName (optional) — copy to a different sheet in the same workbook.
targetFilePath (optional) — copy to a different workbook.
insertColumns (optional, default false) — insert new columns at the destination instead of overwriting.
{
"type": "CopyColumn",
"sheetName": "Sheet1",
"from": "A",
"to": "F"
} MoveColumn Moves a column to a different position in the sheet.
sheetName (optional) — sheet to modify; defaults to the first sheet.
from (required) — source column letter or number.
to (required) — destination column letter or number.
{
"type": "MoveColumn",
"sheetName": "Sheet1",
"from": "E",
"to": "B"
} SortData Sorts a range of rows by the values in a specified column.
sheetName (optional) — sheet to sort; defaults to the first sheet.
range (required) — cell range containing the data to sort, e.g. "A1:D100".
sortColumn (required) — column letter or number to sort by.
ascending (optional, default true) — sort direction.
{
"type": "SortData",
"sheetName": "Sheet1",
"range": "A1:D100",
"sortColumn": "B",
"ascending": false
} FilterData Applies an auto-filter to a range, showing only rows that match the given criteria.
sheetName (optional) — sheet to filter; defaults to the first sheet.
range (required) — cell range to apply the filter to.
filterColumnIndex (required) — 1-based column index within the range to filter on.
filterValue (required) — value to match.
filterOperator (optional, default "Equal") — comparison operator: Equal, NotEqual, Contains, StartsWith, EndsWith, GreaterThan, LessThan.
{
"type": "FilterData",
"sheetName": "Sheet1",
"range": "A1:D100",
"filterColumnIndex": 2,
"filterValue": "North",
"filterOperator": "Equal"
} MergeData Appends data from a source workbook sheet into a destination sheet, starting at a specified cell.
sourceFilePath (required) — path to the source workbook to merge data from.
sourceSheetName (optional) — source sheet; defaults to the first sheet.
destinationSheetName (optional) — destination sheet; defaults to the first sheet.
destinationCell (optional, default "A1") — top-left cell where merged data starts.
includeHeaders (optional, default true) — include the source header row.
{
"type": "MergeData",
"sourceFilePath": "C:\Sales\Monthly\SalesData.xlsx",
"sourceSheetName": "Sheet1",
"destinationSheetName": "Sheet1",
"destinationCell": "A1"
} DeduplicateRows Removes duplicate rows from a worksheet, keeping the first or last occurrence.
sheetName (optional) — sheet to deduplicate; defaults to the first sheet.
columns (optional) — list of column letters to compare, e.g. ["A","C"]; omit to compare all used columns.
hasHeaders (optional, default true) — treat the first row as a header that is never removed.
keepFirst (optional, default true) — keep the first occurrence of each duplicate group.
{
"type": "DeduplicateRows",
"sheetName": "Sheet1",
"columns": ["A", "B"]
} GroupRows Groups a range of rows so they can be collapsed in Excel.
sheetName (optional) — sheet to modify; defaults to the first sheet.
fromRow (required) — 1-based first row of the group.
toRow (required) — 1-based last row of the group.
collapse (optional, default false) — collapse the group immediately after grouping.
{
"type": "GroupRows",
"sheetName": "Sheet1",
"fromRow": 2,
"toRow": 10
} UngroupRows Removes grouping from a range of rows.
sheetName (optional) — sheet to modify; defaults to the first sheet.
fromRow (required) — 1-based first row of the group to remove.
toRow (required) — 1-based last row of the group to remove.
{
"type": "UngroupRows",
"sheetName": "Sheet1",
"fromRow": 2,
"toRow": 10
} GroupColumns Groups a range of columns so they can be collapsed in Excel.
sheetName (optional) — sheet to modify; defaults to the first sheet.
fromColumn (required) — first column of the group (letter or number).
toColumn (required) — last column of the group (letter or number).
collapse (optional, default false) — collapse the group immediately after grouping.
{
"type": "GroupColumns",
"sheetName": "Sheet1",
"fromColumn": "C",
"toColumn": "F"
} UngroupColumns Removes grouping from a range of columns.
sheetName (optional) — sheet to modify; defaults to the first sheet.
fromColumn (required) — first column of the group to remove (letter or number).
toColumn (required) — last column of the group to remove (letter or number).
{
"type": "UngroupColumns",
"sheetName": "Sheet1",
"fromColumn": "C",
"toColumn": "F"
} Formatting
FormatCells Applies font, number format, and fill colour formatting to a cell range.
sheetName (optional) — sheet to format; defaults to the first sheet.
range (required) — cell range to format, e.g. "A1:D10".
numberFormat (optional) — Excel number format string, e.g. "#,##0.00".
fontName (optional) — font family name.
fontSize (optional) — font size in points.
bold (optional) — apply bold.
italic (optional) — apply italic.
fontColor (optional) — named color (e.g. "Red") for the font.
backgroundColor (optional) — named color for the cell fill.
{
"type": "FormatCells",
"sheetName": "Sheet1",
"range": "A1:D1",
"bold": true,
"backgroundColor": "LightBlue"
} AutoFitColumns Automatically adjusts column widths to fit their content.
sheetName (optional) — sheet to auto-fit; defaults to the first sheet.
from (optional) — first column to fit (letter or number); defaults to the first used column.
to (optional) — last column to fit (letter or number); defaults to the last used column.
minWidth (optional) — minimum width after fitting.
maxWidth (optional) — maximum width after fitting.
{
"type": "AutoFitColumns",
"sheetName": "Sheet1",
"maxWidth": 50
} SetColumnWidth Sets an explicit width for one or more consecutive columns.
sheetName (optional) — sheet to modify; defaults to the first sheet.
column (required) — starting column letter or 1-based number.
width (required) — column width in Excel character units.
count (optional, default 1) — number of consecutive columns to set.
{
"type": "SetColumnWidth",
"sheetName": "Sheet1",
"column": "A",
"width": 20
} SetRowHeight Sets an explicit height for one or more consecutive rows.
sheetName (optional) — sheet to modify; defaults to the first sheet.
row (required) — 1-based starting row number.
height (required) — row height in points.
count (optional, default 1) — number of consecutive rows to set.
{
"type": "SetRowHeight",
"sheetName": "Sheet1",
"row": 1,
"height": 30
} ConditionalFormatting Applies a conditional formatting rule to a cell range.
sheetName (optional) — sheet to format; defaults to the first sheet.
range (required) — cell range to apply the rule to.
condition (required) — condition type: GreaterThan, LessThan, Equal, Between, Contains, IsBlank, IsDuplicate, IsTop, ColorScale, DataBar, and more.
value (optional) — comparison value (required for most condition types).
value2 (optional) — second value for Between / NotBetween.
backgroundColor (optional) — fill color as hex or named color.
fontColor (optional) — font color as hex or named color.
bold / italic (optional) — apply bold or italic to matching cells.
{
"type": "ConditionalFormatting",
"sheetName": "Sheet1",
"range": "B2:B100",
"condition": "GreaterThan",
"value": "1000",
"backgroundColor": "#C6EFCE",
"fontColor": "#276221"
} Cells
SetCellValue Writes a value to a specific cell, overwriting any existing content or formula.
sheetName (optional) — sheet to modify; defaults to the first sheet.
cellAddress (required) — cell address, e.g. "B5".
value (required) — value to write; supports date placeholders. Pass an empty string to clear the cell.
{
"type": "SetCellValue",
"sheetName": "Sheet1",
"cellAddress": "A1",
"value": "Report generated: {day}/{month}/{year}"
} ApplyFormula Sets an Excel formula on a specific cell.
sheetName (optional) — sheet to modify; defaults to the first sheet.
cellAddress (required) — cell address, e.g. "C10".
formula (required) — formula string starting with =, e.g. "=SUM(C2:C9)".
{
"type": "ApplyFormula",
"sheetName": "Sheet1",
"cellAddress": "C10",
"formula": "=SUM(C2:C9)"
} ClearCells Clears values, formatting, or both from a cell range.
sheetName (optional) — sheet to modify; defaults to the first sheet.
range (required) — cell range to clear, e.g. "A1:D10".
clearType (optional, default "All") — what to clear: Values (values/formulas only), Formats (formatting only), or All.
{
"type": "ClearCells",
"sheetName": "Sheet1",
"range": "A2:D100",
"clearType": "Values"
} FindAndReplace Finds text in cells and replaces it with another value, supporting substring and whole-cell matching.
sheetName (optional) — sheet to search; defaults to the first sheet.
find (required) — text to search for.
replace (required) — replacement text; use an empty string to delete matched text.
matchCase (optional, default false) — case-sensitive search.
matchEntireCell (optional, default false) — match only cells whose entire value equals find.
searchRange (optional) — limit the search to a specific range, e.g. "A1:D100".
{
"type": "FindAndReplace",
"sheetName": "Sheet1",
"find": "N/A",
"replace": ""
} MergeCells Merges a range of cells into a single cell.
sheetName (optional) — sheet to modify; defaults to the first sheet.
range (required) — cell range to merge, e.g. "A1:D1".
{
"type": "MergeCells",
"sheetName": "Sheet1",
"range": "A1:D1"
} UnmergeCells Unmerges a previously merged cell range.
sheetName (optional) — sheet to modify; defaults to the first sheet.
range (required) — cell range to unmerge, e.g. "A1:D1".
{
"type": "UnmergeCells",
"sheetName": "Sheet1",
"range": "A1:D1"
} CopyRange Copies a cell range to a new location within the same workbook.
sheetName (optional) — source sheet; defaults to the first sheet.
sourceRange (required) — range to copy, e.g. "A1:D10".
destinationCell (required) — top-left cell of the destination, e.g. "F1".
destinationSheet (optional) — paste into a different sheet in the same workbook.
{
"type": "CopyRange",
"sheetName": "Sheet1",
"sourceRange": "A1:D10",
"destinationCell": "A1",
"destinationSheet": "Archive"
} AddHyperlink Attaches a hyperlink to a cell.
sheetName (optional) — sheet to modify; defaults to the first sheet.
cell (required) — cell address to attach the hyperlink to, e.g. "B2".
url (required) — URL for the hyperlink.
tooltip (optional) — tooltip text shown on hover.
{
"type": "AddHyperlink",
"sheetName": "Sheet1",
"cell": "A1",
"url": "https://example.com/report",
"tooltip": "Open report"
} ValidateData Applies a data validation rule to a cell range, restricting input to a list, whole number range, or decimal range.
sheetName (optional) — sheet to modify; defaults to the first sheet.
range (required) — cell range to apply validation to.
validationType (optional, default "List") — List, Whole, or Decimal.
validationCriteria (required) — for List: comma-separated values; for Whole/Decimal: "min,max".
errorMessage (optional) — message shown when invalid data is entered.
{
"type": "ValidateData",
"sheetName": "Sheet1",
"range": "C2:C100",
"validationType": "List",
"validationCriteria": "North,South,East,West"
} Advanced
CreatePivotTable Creates a pivot table from a source data range and places it on a destination sheet.
sourceSheetName (optional) — sheet containing the source data; defaults to the first sheet.
sourceRange (required) — range of source data including headers, e.g. "A1:D200".
destinationSheetName (required) — sheet where the pivot table will be placed (created if it does not exist).
destinationCell (required) — top-left cell for the pivot table, e.g. "A1".
rowFields (optional) — list of column header names to use as row labels.
columnFields (optional) — list of column header names to use as column labels.
dataFields (optional) — list of column header names to aggregate as values.
{
"type": "CreatePivotTable",
"sourceSheetName": "Sheet1",
"sourceRange": "A1:D200",
"destinationSheetName": "Pivot",
"destinationCell": "A1",
"rowFields": ["Region"],
"dataFields": ["Revenue"]
} Transpose Transposes a source range (swapping rows and columns) and writes the result to a destination cell.
sourceSheetName (optional) — sheet containing the source data; defaults to the first sheet.
sourceRange (required) — range to transpose, e.g. "A1:D10".
destinationSheetName (required) — sheet to write the transposed data to (created if it does not exist).
destinationCell (required) — top-left cell for the transposed output.
{
"type": "Transpose",
"sourceSheetName": "Sheet1",
"sourceRange": "A1:D10",
"destinationSheetName": "Transposed",
"destinationCell": "A1"
} Time
Wait Pauses pipeline execution for a given number of seconds before proceeding to the next action.
timeInSeconds (required) — number of seconds to wait; must be non-negative.
{
"type": "Wait",
"timeInSeconds": 30
}