|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Извлечение информации из Excel с помощью PowerShell |
|
|
PowerShell - Извлечение информации из Excel с помощью PowerShell
|
Новый участник Сообщения: 33 |
Добрый день.
Помогите пожалуйста составить скрипт PowerShell который: 1.Открывал заданный файл Excel, содержащий имена и даты. 2.Находил в нем строчки с датой отличающейся от сегодняшней менее чем на 20 дней. 3.Отсылал найденные строчки по электронной почте. |
|
Отправлено: 13:41, 13-10-2016 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $body = Import-Excel "C:\Users.xlsx" | Where { $t = New-TimeSpan (Get-Date).ToString("dd.MM") (Get-Date $_.Дата).ToString("dd.MM") $t.Days -gt 0 -and $t.Days -le 20 } | Out-String if($body) { send-mailmessage -from "User01 <user01@example.com>" -to "User02 <user02@example.com>" -subject "Date" -body $body -smtpServer smtp.fabrikam.com } ![]() Пример вывода: Модуль: https://github.com/dfinke/ImportExcel |
Последний раз редактировалось Kazun, 13-10-2016 в 15:00. Отправлено: 14:52, 13-10-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать Спасибо за ответ. Подскажите, а как установить Import-Excel?
|
Отправлено: 15:17, 13-10-2016 | #3 |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать При запуске кода возникает ошибка:
Get-Date : Не удается привязать параметр "Date" к целевому объекту. Исключение при задании "Date" : "Ссылка на объект н е указывает на экземпляр объекта." строка:2 знак:58 + $t = New-TimeSpan (Get-Date).ToString("dd.MM") (Get-Date $_.Дата).ToString("dd.M ... + ~~~~~~~ + CategoryInfo : WriteError: ( ![]() + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand Подскажите, как это можно исправить? |
Отправлено: 16:51, 14-10-2016 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Alexchandr, самым правильным будет, если Вы выложите образец Вашего:
Цитата Alexchandr:
|
||
Отправлено: 18:33, 14-10-2016 | #5 |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать Вот сам файл.
|
Отправлено: 09:46, 18-10-2016 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 10:07, 18-10-2016 | #7 |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать Исправил второй столбец на "Дата".
Ошибка осталась. PS C:\Users\Alex> $body = Import-Excel "D:\us\user.xlsx" | Where { >> $t = New-TimeSpan (Get-Date).ToString("dd.MM") (Get-Date $_.Дата).ToString("dd.MM") >> $t.Days -gt 0 -and $t.Days -le 20 >> } | Out-String >> Get-Date : Не удается привязать параметр "Date" к целевому объекту. Исключение при задании "Date" : "Ссылка на объект н е указывает на экземпляр объекта." строка:2 знак:58 + $t = New-TimeSpan (Get-Date).ToString("dd.MM") (Get-Date $_.Дата).ToString("dd.M ... + ~~~~~~~ + CategoryInfo : WriteError: ( ![]() + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand Get-Date : Не удается привязать параметр "Date" к целевому объекту. Исключение при задании "Date" : "Ссылка на объект н е указывает на экземпляр объекта." строка:2 знак:58 + $t = New-TimeSpan (Get-Date).ToString("dd.MM") (Get-Date $_.Дата).ToString("dd.M ... + ~~~~~~~ + CategoryInfo : WriteError: ( ![]() + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand Get-Date : Не удается привязать параметр "Date" к целевому объекту. Исключение при задании "Date" : "Ссылка на объект н е указывает на экземпляр объекта." строка:2 знак:58 + $t = New-TimeSpan (Get-Date).ToString("dd.MM") (Get-Date $_.Дата).ToString("dd.M ... + ~~~~~~~ + CategoryInfo : WriteError: ( ![]() + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand Get-Date : Не удается привязать параметр "Date" к целевому объекту. Исключение при задании "Date" : "Ссылка на объект н е указывает на экземпляр объекта." строка:2 знак:58 + $t = New-TimeSpan (Get-Date).ToString("dd.MM") (Get-Date $_.Дата).ToString("dd.M ... + ~~~~~~~ + CategoryInfo : WriteError: ( ![]() + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand Get-Date : Не удается привязать параметр "Date" к целевому объекту. Исключение при задании "Date" : "Ссылка на объект н |
Отправлено: 10:22, 18-10-2016 | #8 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать PS > Import-Excel C:\user.xlsx Имя Дата --- ---- Маша 01.10.1986 0:00:00 Паша 02.10.1985 0:00:00 Галя 20.06.1999 0:00:00 Валя 05.11.1965 0:00:00 Поля 01.11.2000 0:00:00 $body = Import-Excel "C:\Users.xlsx" | Where {$_.Дата} | Where { $t = New-TimeSpan (Get-Date).ToString("dd.MM") (Get-Date $_.Дата).ToString("dd.MM") $t.Days -gt 0 -and $t.Days -le 20 } | Out-String PS > Import-Excel C:\user.xlsx | Where {$_.Дата} | Where { >> $t = New-TimeSpan (Get-Date).ToString("dd.MM") (Get-Date $_.Дата).ToString("dd.MM") >> $t.Days -gt 0 -and $t.Days -le 20 >> } | Out-String Имя Дата --- ---- Валя 05.11.1965 0:00:00 Поля 01.11.2000 0:00:00 Если локализациия английская и формат ячеек Дата: |
Отправлено: 11:32, 18-10-2016 | #9 |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать Спасибо большое! Заработало!
Единственное, MS Outlook2010 почему то не отображает русские шрифты. ??? ???? --- ---- ???? 05.11.1965 0:00:00 ???? 01.11.2000 0:00:00 Еще раз спасибо. |
Отправлено: 13:22, 18-10-2016 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] извлечение информации из файлаа | muslimdogger | Скриптовые языки администрирования Windows | 3 | 22-04-2016 21:34 | |
CMD/BAT - Извлечение информации из множества файлов в один | Борис_Спектор@vk | Скриптовые языки администрирования Windows | 9 | 07-02-2016 21:43 | |
Любой язык - Извлечение определенных файлов из нескольких архивов в .bat или PowerShell | dmitry1026 | Скриптовые языки администрирования Windows | 0 | 03-02-2016 13:34 | |
PowerShell - [решено] Импорт из CSV в AD с помощью PowerShell | rox33 | Скриптовые языки администрирования Windows | 23 | 20-07-2012 15:45 | |
2003/XP/2000 - [решено] Excel 2003. Запись текстовой информации из трех ячеек в одну ячейку. | Stejar | Microsoft Office (Word, Excel, Outlook и т.д.) | 2 | 15-02-2012 16:12 |
|