PowerShell에서 Excel 시트 데이터 읽기

Marion Paul Kenneth Mendoza 2023년6월21일
PowerShell에서 Excel 시트 데이터 읽기

대부분의 IT 전문가가 직장에서 한 번 이상 사용했을 일반적인 도구 중 하나는 Microsoft Excel입니다. 그러나 불행히도 많은 IT 전문가들은 Excel을 수많은 데이터로 연결되는 작은 데이터베이스 저장소로 사용합니다.

이 문서에서는 PowerShell을 사용하여 Excel 통합 문서에서 데이터 읽기를 자동화하는 기본 사항을 설명합니다.

PowerShell에서 Excel 값 읽기

Excel 통합 문서를 PowerShell 개체에 저장한 다음 New-Object -ComObject Excel.Application COM 명령을 사용하여 읽고 조작할 수 있습니다. 명령이 작동하려면 컴퓨터에 Office 2016 패키지가 설치되어 있는지 확인하십시오.

아래 엑셀 파일을 예로 들어보겠습니다.

샘플.xlsx:

Name,Salary
John,1000
Paul,2000
Mary,1500
Matt,3000

셀 값을 찾으려면 다음 스니펫을 사용하여 Excel 통합 문서를 열어 메모리로 가져옵니다.

$excel = New-Object -ComObject Excel.Application
$workbook = $excel.workbooks.Open('C:\PS\Sample.xlsx')

다음으로 통합 문서 내부의 워크시트를 선택합니다. 인수는 정수 값을 허용합니다. 여기서 1은 시트 1, 2는 시트 2 등입니다.

$sheet = $workbook.Sheets.Item(1)

워크시트를 변수에 할당하면 개별 행, 열 및 셀로 드릴다운할 수 있습니다. 특정 셀에 대한 셀 값을 찾아야 할 수도 있습니다.

그런 다음 행 및 열 좌표를 제공하는 cells 속성을 참조해야 합니다.

$cellValue = $sheet.Cells.Item(2,2).Value2

그러나 셀 좌표가 아니라 이름 주소를 원하는 경우 Address 기능을 사용하여 표시할 수 있습니다.

예제 코드:

$cellAddress = $sheet.Cells.Item(2,2).Address()
Write-Output $cellAddress

출력:

$B$2

이제 이러한 모든 명령을 사용하여 PowerShell을 사용하여 특정 열의 모든 데이터를 출력하는 샘플 코드 조각을 공식화할 수 있습니다.

$rangeAddress = $sheet.Cells.Item(2,2).Address() + ":" + $sheet.Cells.Item(5,2).Address()

$sheet.Range($rangeAddress).Value2 | foreach {
	$salary = $_
	Write-Output $salary
}

출력:

1000
2000
1500
3000
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn