Выбор диапазона ячеек из Excel с помощью Powershell

Я пытался выбрать от A55 до последней строки, заполненной из столбца A в Excel, с помощью сценария Powershell.

Мой первый скрипт работал отлично, а именно:

$lastRow = $ivWorksheet.Cells.Item($ivWorksheet.Rows.Count, "A").End(3).Row
$ivRange = $ivWorksheet.Range("A55:A$lastRow")

Однако когда я изменил верхнее на нижнее, это не сработало.

$startRow = 55
$lastRow = $ivWorksheet.Cells.Item($ivWorksheet.Rows.Count, "A").End(3).Row
$ivRange = $ivWorksheet.Range("A$startRow:A$lastRow")

Я ожидал, что оба сценария дадут одинаковый результат, но последний не сработал. Не могли бы вы подсказать, в чем причина?

Каков результат второго кода? Выдает ошибку, в чем проблема?

Mark S. 25.04.2024 17:26
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
3
1
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

$startRow:A интерпретируется как переменная во второй попытке, и поскольку эта переменная не определена, она расширяется до null:

$startRow = 55; $lastRow = 123
"A$startRow:A$lastRow" # => A123

Вам нужно использовать ${ } для ее разделения, другими словами, чтобы указать, где переменная начинается и где она заканчивается, чтобы PowerShell мог ее правильно разрешить. Дополнительную информацию см. в разделе Имена переменных, содержащие специальные символы.

$startRow = 55; $lastRow = 123
"A${startRow}:A$lastRow" # => A55:A123

Большое спасибо. Он работает отлично! Еще один урок получен :)

Sangwon Lee 26.04.2024 00:57

Другие вопросы по теме