![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Поиск текста в таблице MWord |
|
PowerShell - [решено] Поиск текста в таблице MWord
|
Пользователь Сообщения: 80 |
Добрый День!
Ранее не работала с таблицами созданными в Word. Необходимо найти текст и получить адрес ячейки в которой он находиться. Вхождений текста может быть не одно. $word = New-Object -Com Word.Application $filename = 'd:\Table.doc' $document = $word.Documents.Open($filename) #$find = $word.Selection.Find.Text $word.Selection.Find.Execute() $table = $document.Tables.Item(2) $tableCols = $table.Columns.Count $tableRows = $table.Rows.Count for($i=1; $i -le $tableRows; $i++) { for($j=1; $j -le $tableCols; $j++) { $table.Cell($i, $j).Range.Find.Text("ошибочно") # Смотрели справку вроде все нормально, но выходит ошибка "Операции с семействами не поддерживаются" } } $document.Close() $word.Quit() # Stop Winword Process $rc = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Word) |
|
Отправлено: 16:53, 19-04-2021 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать lox-ness, образец документа предоставьте.
|
Отправлено: 22:10, 19-04-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Часть таблицы
|
Отправлено: 06:06, 20-04-2021 | #3 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Немного изменила код
$Word = New-Object -Comobject Word.Application $Word.Visible = $true $count = 0 $File = "D:\Table.docf" $Doc = $Word.Documents.Open($File) $Selection = $Word.Selection $Selection.GoTo(0) | Out-Null $Find_String="ошибочно" foreach ($find in $Find_String) { $Selection.Find.Text = $find do { if ($Selection.Find.Execute()) { Write-Host "Нашел" $count $Word.Selection.Cells() $count++ } } while ($Selection.Find.Found) } $Selection.GoTo(0) | Out-Null $word.Quit() Нашел 1 Range : System.__ComObject Application : System.__ComObject Creator : 1297307460 Parent : System.__ComObject RowIndex : 4 ColumnIndex : 9 Width : 176,15 Height : 9999999 HeightRule : 0 VerticalAlignment : 0 Column : System.__ComObject Row : System.__ComObject Next : System.__ComObject Previous : System.__ComObject Shading : System.__ComObject Borders : System.__ComObject Tables : System.__ComObject NestingLevel : 1 WordWrap : True PreferredWidth : 176,15 FitText : False TopPadding : 2,85 BottomPadding : 2,85 LeftPadding : 2,85 RightPadding : 2,85 ID : PreferredWidthType : 3 |
Отправлено: 06:16, 20-04-2021 | #4 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Получили что хотели $Word.Selection.Cells() | Select RowIndex, ColumnIndex
|
|
Отправлено: 09:12, 20-04-2021 | #5 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать По мотивам https://stackoverflow.com/questions/...ith-tables-etc
$filename = "D:\temp\Table.doc" $search = "эквайринг" $wd = New-Object -ComObject Word.Application $doc = ($wd).Documents.Open($filename) $report = @() $cTable = 1 foreach ($table in $doc.Tables) { $cRows = $table.Rows.Count $cColumns = $table.Columns.Count $cColumn = 1 do { $cRow = 1 do { if ($table.Cell($cRow, $cColumn).range.text -match "$search") { $obj = [PSCustomObject]@{ '№ таблицы' = $cTable '№ cтолбца' = $cColumn '№ строки' = $cRow Строка = $table.Cell($cRow, $cColumn).range.text } $report += $obj } $cRow++ } until ($cRow -gt $cRows) $cColumn++ } until ($cColumn -gt $cColumns) $cTable++ } $wd.Quit() $report |
------- Отправлено: 10:17, 20-04-2021 | #6 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Спасибо
|
Отправлено: 12:17, 20-04-2021 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2007 - MS Word. В таблице граница перекрывает часть текста из соседнего столбца | Илья Сидоров | Microsoft Office (Word, Excel, Outlook и т.д.) | 1 | 18-03-2019 22:47 | |
2010 - поиск в одной таблице значений, которых нет в другой. | Pavelasd | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 01-05-2014 21:49 | |
[решено] Поиск в таблице mysql через формы+php | cibin | Вебмастеру | 33 | 25-06-2012 10:45 | |
Поиск одинаковых значений в одной таблице MySQL | blackmane | Вебмастеру | 1 | 01-04-2012 14:27 | |
MSFT SQL Server - Поиск пустого поля в таблице | rivera | Программирование и базы данных | 2 | 05-07-2011 11:04 |
|