Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
6 / 3 / 2
Регистрация: 21.02.2010
Сообщений: 84
1
.NET 4.x

Поиск текста в документах MS Office

20.01.2012, 02:52. Показов 6917. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем есть библиотека документов,мне нужно организовать поиск текста по каждому документу и с возможностью подсчета совпадений...знаю что в Microsoft.Office.Interop.Word; реализован поиск..только он открывает каждый документ и долго думает...в общем помогите сделать это быстро и просто если можно))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 02:52
Ответы с готовыми решениями:

Поиск текста в документах Word
Есть код ВБА. Он работает .. нигде не могу найти команды!!!! Может кто-то поможет ....Код для...

Поиск и замена текста в документах Word
Добрый день! Подскажите где ошибка. Компилятор ругается на строку...

Microsoft.Office.Interop.Word поиск текста
Здравствуйте. Есть документ Word. В нем есть текст: Категория возрастная: дети Пол: любой...

Замена текста в doc документах
Для изменения документов Word использую Bytescout.Document.dll библиотеку. Так вот когда использую...

8
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
20.01.2012, 10:11 2
Судя по всему, поиск требуется реализовать по .doc и .docx файлам?
Для поиска по .doc файлам лучше воспользоваться таким: http://www.codeproject.com/KB/cs/getwordtext.aspx или подобным способом. Поиск по .docx реализуется проще - распаковываем его через стандартный GZipStream и ищем по содержимому "document.xml".
1
6 / 3 / 2
Регистрация: 21.02.2010
Сообщений: 84
20.01.2012, 17:28  [ТС] 3
Спасибо...с первым моментом разобрался,со вторым не понятно,знаю GZipStream,но что значит ищем по содержимому "document.xml"
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
20.01.2012, 17:40 4
Цитата Сообщение от scrat Посмотреть сообщение
что значит ищем по содержимому "document.xml"
Файлы .docx - обычные архивы с кучей xml внутри. Нужно распаковать файл любым удобным способом (вариант с GZipStream - не самый удобный, надо сказать) и прочитать содержимое "document.xml", где лежит текст из файла.
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
20.01.2012, 18:14 5
Цитата Сообщение от Slap Посмотреть сообщение
Файлы .docx - обычные архивы с кучей xml внутри. Нужно распаковать файл любым удобным способом (вариант с GZipStream - не самый удобный, надо сказать) и прочитать содержимое "document.xml", где лежит текст из файла.
это правда xml, но просто для поиска текста его использовать сложно, потому что там может оказаться сложное разбиение.
наприме был такой файлик

а получилось такой xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:o="urn:schemas-microsoft-com:office:office"
            xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
            xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"
            xmlns:v="urn:schemas-microsoft-com:vml"
            xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
            xmlns:w10="urn:schemas-microsoft-com:office:word"
            xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
            xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml">
    <w:body>
        <w:p w:rsidR="00556AB4" w:rsidRDefault="0013716E">
            <w:r>
                <w:t>обы</w:t>
            </w:r>
            <w:r w:rsidRPr="0013716E">
                <w:rPr>
                    <w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman"/>
                    <w:sz w:val="44"/>
                    <w:szCs w:val="44"/>
                </w:rPr>
                <w:t>чный те</w:t>
            </w:r>
            <w:r>
                <w:t>кст</w:t>
            </w:r>
        </w:p>
        <w:sectPr w:rsidR="00556AB4" w:rsidSect="00556AB4">
            <w:pgSz w:w="11906" w:h="16838"/>
            <w:pgMar w:top="1134" w:right="850" w:bottom="1134" w:left="1701" w:header="708" w:footer="708" w:gutter="0"/><w:cols w:space="708"/>
            <w:docGrid w:linePitch="360"/>
        </w:sectPr>
    </w:body>
</w:document>
и выделить тут текст нетривиальная задача
Миниатюры
Поиск текста в документах MS Office  
0
40 / 40 / 3
Регистрация: 08.01.2012
Сообщений: 96
20.01.2012, 18:17 6
А разве в Open XML SDK нет поддержки таких функций?
1
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
20.01.2012, 18:28 7
turbanoff, это валидный XML, достаточно удалить все теги, чтобы получить исходный текст.
0
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
21.01.2012, 13:44 8
http://msdn.microsoft.com/en-u... 78255.aspx
http://msdn.microsoft.com/en-u... .text.aspx
-в общем смысл таков, получаешь Body документа, там тянешь нужный параграф, пробегаешься по Run обьектам, и для каждого тянешь свойство text.
В твоем случае один параграф и три Run обьекта.

З.Ы А вообще можно забить на OpenXML и делать через обычный XDocument + Regex.
1
6 / 3 / 2
Регистрация: 21.02.2010
Сообщений: 84
21.01.2012, 21:49  [ТС] 9
Спасибо всем))...я тут обнаружил что у меня и PDF есть,его то как сканировать не подскажите,иначе я умру
0
21.01.2012, 21:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2012, 21:49
Помогаю со студенческими работами здесь

Программа для поиска текста в документах
Посоветуйте ту, которая, как это ни странно звучит - ИСКАТЬ будет! Потерял файл, скачал парочку...

Программное форматирование текста в документах Word
Есть n-oe количество файлов в *.txt расширение. Сделал копирование нужных файлов из сети на...

Поиск в документах по реквизиту
Здравствуйте. Такая проблема - нужно реквизит из одного документа приравнять другому, причём нужно...

Поиск в документах Word
Пример следующий: в документе есть блоки текста и имеются заголовки данных блоков. Задача такая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru