Evotec

Project

PSWriteOffice

PSWriteOffice is an open-source PowerShell and .NET project with packages, release history, and technical documentation.

Stars 144
Forks 12
Open issues 16
PowerShell Gallery downloads 150,904
Release v0.2.0
Language: C# Updated: 2026-04-06

API Reference

Cmdlet

Get-OfficeExcelRange

Namespace PSWriteOffice
Inputs
OfficeIMO.Excel.ExcelDocument
Outputs
System.Management.Automation.PSObject System.Collections.Hashtable System.Data.DataTable

Reads an explicit A1 range from an Excel workbook.

Remarks

Returns rows as PSCustomObjects by default, with optional hashtable or DataTable output for scripting and interoperability.

Examples

Authored help example

Read a rectangular range as objects.

PS>


Get-OfficeExcelRange -Path .\report.xlsx -Sheet 'Data' -Range 'A1:C10'
        

Uses the first row as headers and returns each remaining row as a PSCustomObject.

Common Parameters

This command supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.

For more information, see about_CommonParameters.

Syntax

Get-OfficeExcelRange [-AsDataTable] [-AsHashtable] [-HeadersInFirstRow <Boolean>] -InputPath <String> [-NumericAsDecimal] -Range <String> [-Sheet <String>] [-SheetIndex <Nullable`1>] [<CommonParameters>]
#
Parameter set: Path

Parameters

AsDataTable SwitchParameter optionalposition: namedpipeline: False
Emit the raw DataTable instead of row objects.
AsHashtable SwitchParameter optionalposition: namedpipeline: False
Emit rows as hashtables instead of PSCustomObjects.
HeadersInFirstRow Boolean optionalposition: namedpipeline: False
Use the first row as column headers.
InputPath String requiredposition: 0pipeline: Falsealiases: FilePath, Path
Path to the workbook.
NumericAsDecimal SwitchParameter optionalposition: namedpipeline: False
Prefer decimals instead of doubles for numeric values.
Range String requiredposition: namedpipeline: False
A1 range to read.
Sheet String optionalposition: namedpipeline: False
Worksheet name to read; defaults to the first sheet.
SheetIndex Nullable`1 optionalposition: namedpipeline: False
Zero-based worksheet index to read; defaults to the first sheet.

Outputs

System.Management.Automation.PSObject System.Collections.Hashtable System.Data.DataTable

Get-OfficeExcelRange [-AsDataTable] [-AsHashtable] -Document <ExcelDocument> [-HeadersInFirstRow <Boolean>] [-NumericAsDecimal] -Range <String> [-Sheet <String>] [-SheetIndex <Nullable`1>] [<CommonParameters>]
#
Parameter set: Document

Parameters

AsDataTable SwitchParameter optionalposition: namedpipeline: False
Emit the raw DataTable instead of row objects.
AsHashtable SwitchParameter optionalposition: namedpipeline: False
Emit rows as hashtables instead of PSCustomObjects.
Document ExcelDocument requiredposition: namedpipeline: True (ByValue)
Workbook to inspect.
HeadersInFirstRow Boolean optionalposition: namedpipeline: False
Use the first row as column headers.
NumericAsDecimal SwitchParameter optionalposition: namedpipeline: False
Prefer decimals instead of doubles for numeric values.
Range String requiredposition: namedpipeline: False
A1 range to read.
Sheet String optionalposition: namedpipeline: False
Worksheet name to read; defaults to the first sheet.
SheetIndex Nullable`1 optionalposition: namedpipeline: False
Zero-based worksheet index to read; defaults to the first sheet.

Outputs

System.Management.Automation.PSObject System.Collections.Hashtable System.Data.DataTable