|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
|
Парсинг данных из файла Word и сохранение результата в Excel26.01.2018, 01:21. Показов 13089. Ответов 29
Метки нет (Все метки)
Уважаемые форумчане!
Вот посоветовали задать вопрос в этой теме. Суть решаемой мной задачи: есть файл Word, который содержит данные (текстовые, числовые, даты). Необходимо их упорядочить и результат записать в файл Excel. Т.е. используя данные из файла Word надо создать таблицу в Excel. Для более точного описания задачи прилагаю исходный файл Word и требуемый результат его обработки в Excel. Помогите а? п.с. - сам не являюсь программистом, но вроде как уже написал (ну ... подправил чужой код) в VB net код для создания таблицы в Excel с нужным количеством столбцов и сохранения ее в виде файла .xls. Теперь вот парсер пробую .....сотворить.
0
|
|
| 26.01.2018, 01:21 | |
|
Ответы с готовыми решениями:
29
Парсинг базы данных и сохранение результата в отдельный файл Сохранение файла Word с именем, взятым из данных самого файла |
|
100 / 95 / 23
Регистрация: 30.08.2015
Сообщений: 457
|
|
| 26.01.2018, 10:17 | |
|
Данные word можно связать с excel и далее средствами excel управлять ими...
пример:
0
|
|
|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
|
| 26.01.2018, 11:02 [ТС] | |
|
Спасибо за ответ!
Я наверное не до конца изложил все нюансы. Конечно, Вы правы, если записей (ну в смысле переменных хотя-бы десяток), то можно и руками "прописать" связи как на приведенном примере. Но когда в файле Word содержится примерно 1200 переменных (это порядка 600 листов тестовой информации с шрифтом 12), к каждой из них надо "привязывать" по 10 значений.... и эти значения изменяются примерно раз в две недели. Тут уж точно требуется автоматизация.
0
|
|
|
1591 / 664 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
|
||
| 26.01.2018, 12:13 | ||
|
...на форуме множество примеров открытия вордовских файлов, извлечения из них текста, поиска. Что не получается?
1
|
||
|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
|
| 26.01.2018, 17:48 [ТС] | |
|
Кодю..... !
Ну вообще-то примеры кода и правда присутствуют на форуме. Но... совместимость с VB 2010 Express мягко говоря хромает... Рою кучу самоучителей.. и т.п. ... Плюс народ подсказывает всякие вещи - ну например я не знал, что обработка данных в .txt осуществляется быстрее чем в формате .doc. Следовательно в моем коде должна быть подпрограмма перевода файла .doc в .txt. Пока не отчаиваюсь и пытаюсь разобраться. Уж не взыщите, что не сразу тут отвечаю.... работаю! ![]() п.с. - но был-бы признателен если вдруг найдется "Дед мороз", который чирканет хотя бы ссылочку на существующий парсер (ищем текст в Ворде и записываем в ячейку Экселя).
0
|
|
| 26.01.2018, 19:46 | |
|
Конечно, странно использовать Word для сохранения данных, когда в данном случае за глаза хватит txt. Привожу пример, как можно выполнить описываемую вами операцию, к сожалению, у меня старый Office (2003) и все расписано для doc и xls. Хотя при переходе к новым версиям справедливость представляемых операций в целом сохраняется. Правда нужно сразу сказать, что данное решение не быстрое, а для версий Office2007 и старше учитывая формат файлов можно предложить более оптимальное решение. Можно вообще отказаться от использования Word и Excel, а заменить их на доступные библиотеки на базе OpenOfficeXML.
0
|
|
|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
|
| 27.01.2018, 00:13 [ТС] | |
|
Ovva, огромное спасибо за Вашу помощь!
п.с. - немного надо "подкрутить" чем и занимаюсь сейчас..... Для сведения (вдруг Вам тоже будет интересно) приложи некий скрин ..... (пытаюсь сам разобраться ибо интересно...).
0
|
|
|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
|
| 27.01.2018, 17:26 [ТС] | |
|
Ну приплыли...
Как оказалось в моем Microsoft Visual Basic 2010 Express нет необходимых библиотек: - Microsoft.Office.Interop.Excel - Microsoft.Office.Interop.Word Но... Бро Гугл помог в очередной раз! )))) Вот, вдруг у кого тоже проблемки с отсуствием указанных библиотек: https://www.microsoft.com/en-u... px?id=3508 The redistributable contains the PIAs for the following products: Microsoft Access 2010 Microsoft Excel 2010 Microsoft InfoPath 2010 Microsoft Outlook 2010 Microsoft PowerPoint 2010 Microsoft Project 2010 Microsoft Publisher 2010 Microsoft SharePoint Designer 2010 Microsoft Visio 2010 Microsoft Word 2010 The redistributable package also contains additional PIAs that are associated with many of these products. Supported Operating System Windows 2000 Service Pack 4, Windows Server 2003, Windows XP Service Pack 2 Microsoft Windows XP, Microsoft Windows Vista, Microsoft Windows Server 2003, Microsoft Windows Server 2008, Microsoft Windows 7 The following is also required: Microsoft .NET Framework 2.0 or higher Добавлено через 37 минут Все интереснее и интереснее ..... : скачал, распаковал, запусти файл установщик (o2010pia.msi), установщик отработал ... и не появилось ни одной библиотеки Microsoft.Office.Interop. Assemblies included in O2010PIA.MSI 1. ADODB 2. extensibility 3. ipdmctrl 4. Microsoft.mshtml 5. Microsoft.Office.InfoPath.Permission 6. Microsoft.Office.Interop.Access 7. Microsoft.Office.interop.access.dao 8. Microsoft.Office.Interop.Excel 9. Microsoft.Office.Interop.Graph 10. Microsoft.Office.Interop.InfoPath 11. Microsoft.Office.Interop.InfoPath.SemiTr ust 12. Microsoft.Office.Interop.InfoPath.Xml 13. Microsoft.Office.Interop.MSProject 14. Microsoft.Office.Interop.OneNote (Assembly version 12.0.0.0) 15. Microsoft.Office.Interop.OneNote (Assembly version 14.0.0.0) 16. Microsoft.Office.Interop.Outlook 17. Microsoft.Office.Interop.OutlookViewCtl 18. Microsoft.Office.Interop.PowerPoint 19. Microsoft.Office.Interop.Publisher 20. Microsoft.Office.Interop.SharePointDesig ner 21. Microsoft.Office.Interop.SharePointDesig nerPage 22. Microsoft.Office.Interop.SmartTag 23. Microsoft.Office.Interop.Visio 24. Microsoft.Office.Interop.Visio.SaveAsWeb 25. Microsoft.Office.Interop.VisOcx 26. Microsoft.Office.Interop.Word 27. Microsoft.stdformat 28. Microsoft.Vbe.Interop 29. Microsoft.Vbe.Interop.Forms 30. MSCOMCTL 31. msdatasrc 32. OFFICE 33. stdole 34. Policy.11.0.Microsoft.Office.Interop.Acc ess 35. Policy.11.0.Microsoft.Office.Interop.Exc el 36. Policy.11.0.Microsoft.Office.Interop.Gra ph 37. Policy.11.0.Microsoft.Office.Interop.Inf oPath 38. Policy.11.0.Microsoft.Office.Interop.Inf oPath.Xml 39. Policy.11.0.Microsoft.Office.Interop.MSP roject 40. Policy.11.0.Microsoft.Office.Interop.Out look 41. Policy.11.0.Microsoft.Office.Interop.Out lookViewCtl 42. Policy.11.0.Microsoft.Office.Interop.Pow erPoint 43. Policy.11.0.Microsoft.Office.Interop.Pub lisher 44. Policy.11.0.Microsoft.Office.Interop.Sma rtTag 45. Policy.11.0.Microsoft.Office.Interop.Vis io 46. Policy.11.0.Microsoft.Office.Interop.Vis io.SaveAsWeb 47. Policy.11.0.Microsoft.Office.Interop.Vis Ocx 48. Policy.11.0.Microsoft.Office.Interop.Wor d 49. Policy.11.0.Microsoft.Vbe.Interop 50. Policy.11.0.Office 51. Policy.12.0.Microsoft.Office.Infopath 52. Policy.12.0.Microsoft.Office.Infopath.Fo rmControl 53. Policy.12.0.Microsoft.Office.Infopath.Pe rmission 54. Policy.12.0.Microsoft.Office.Interop.Acc ess 55. Policy.12.0.Microsoft.Office.Interop.Acc ess.Dao 56. Policy.12.0.Microsoft.Office.Interop.Exc el 57. Policy.12.0.Microsoft.Office.Interop.Gra ph 58. Policy.12.0.Microsoft.Office.Interop.Inf oPath 59. Policy.12.0.Microsoft.Office.Interop.Inf oPath.Xml 60. Policy.12.0.Microsoft.Office.Interop.MSP roject 61. Policy.12.0.Microsoft.Office.Interop.Out look 62. Policy.12.0.Microsoft.Office.Interop.Out lookViewCtl 63. Policy.12.0.Microsoft.Office.Interop.Pow erPoint 64. Policy.12.0.Microsoft.Office.Interop.Pub lisher 65. Policy.12.0.Microsoft.Office.Interop.Sma rtTag 66. Policy.12.0.Microsoft.Office.Interop.Vis io 67. Policy.12.0.Microsoft.Office.Interop.Vis io.SaveAsWeb 68. Policy.12.0.Microsoft.Office.Interop.Vis Ocx 69. Policy.12.0.Microsoft.Office.Interop.Wor d 70. Policy.12.0.Microsoft.Vbe.Interop 71. Policy.12.0.Office ![]() Подскажите, в чем проблемка может быть?
0
|
|
|
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
|
|||||||||||
| 27.01.2018, 17:51 | |||||||||||
|
Эти библиотеки устанавливаются с пакетом MS Office и на вкладке COM называются Microsoft Exel xx.0 Object Library и Microsoft Word xx.0 Object Library соответственно, где хх.0 зависит от установленного у тебя офиса. Например для 2003 офиса это будет 10.0 (если не ошибаюсь), а для 2010 14.0
Так же для универсальности можно использовать позднее связывание:
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
|
| 27.01.2018, 17:57 [ТС] | |
|
Значит-ли это, что в коде вместо:
Imports WRD = Microsoft.Office.Interop.Word Imports EX = Microsoft.Office.Interop.Excel надо написать: Imports WRD = Microsoft.Word 12.0 Object Library Imports EX = Microsoft.Excel 12.0 Object Library я правильно предполагаю?
0
|
|
|
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
|
||||||
| 27.01.2018, 18:05 | ||||||
|
Это значит что в обозревателе решений тебе нужно добавить ссылки на эти библиотеки или вообще отказаться от
0
|
||||||
| 27.01.2018, 19:37 | ||
|
KorSar72, если у вас установлены программы Excel и Word, то у вас эти библиотеки должны быть в наличии и ссылки на них м.б. установлены как я уже писал (именно на вкладке NET)
Выбор позднего связывания для вас я бы не рекомендовал просто, потому что вопросы никогда не кончатся. По крайней мере, для раннего связывания работает механизм IntelliSense.
0
|
||
|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
|
| 27.01.2018, 22:55 [ТС] | |
|
У меня установлены только Word 2007 и Excel 2007. Других версий указанных программ нет. При этом в Microsoft Visual Basic 2010 Express (на чем я и пытаюсь написать код) нет библиотек Microsoft.Office.Interop.Word и Microsoft.Office.Interop.Excel (ни в NET, ни в COM. Установить их с официального сайта (как я писал ранее) не получается). При этом в COM имеются Microsoft.Word 12.0 Object Library и Microsoft.Excel 12.0 Object Library.
так, что взял за основу Ваш код и "прикручиваю" вариант, который посоветовал Razvedka2020. (но пока..много ошибок).
0
|
|
|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
|
| 28.01.2018, 01:24 [ТС] | |
|
Ну я чего-то не понимаю, что твориться с моим Microsoft Visual Basic 2010 Express!
Есть код, который нормально работает, но .... только один раз. Если закрыть проект и потом снова его открыть исчезает как форма, так и кнопка в панели управления "пуск" (ну запуск проекта). При первичном открытии указанного проекта, в коде содержится строка - Imports Excel = Microsoft.Office.Interop.Excel и код работает без ошибок (это не смотря на то, что я писал выше про отсутствие указанных библиотек). Закрываю указанный проект, перезапускаю (или не перезапускаю) Microsoft Visual Basic 2010 Express, создаю новый код (или открываю любой другой проект) где содержится аналогичная строка - Imports Excel = Microsoft.Office.Interop.Excel - сразу получаю в списке ошибок сообщение - "Не найден адресуемый компонент Microsoft.Office.Interop.Excel". Что такое? Криво стоит Microsoft Visual Basic 2010 Express????? ![]() (прикладываю указанный рабочий код).
0
|
|
|
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
|
|||||||||||||||||||||||||||||||
| 28.01.2018, 10:00 | |||||||||||||||||||||||||||||||
|
Попробую объяснить настолько просто, насколько смогу (да простят меня Гуру форума за мою безграмотность).
Насколько я вижу из написаного тобой, твоя проблема в основном кроется в непонимании механики работы с библиотеками. При работе с библиотеками можно использовать позднее или раннее связывание. При раннем связывании ты добавляешь в проект ссылку на нужную тебе библиотеку (в твоем случае это будет Microsoft.Word 12.0 Object Library и Microsoft.Excel 12.0 Object Library. Не путай с Microsoft.Office.Interop.Word и Microsoft.Office.Interop.Excel - это пространство имен!!!). Теперь ты в проекте можешь обращаться к объектам библиотеки по полному пути, например:
При позднем связывании ты НЕ ДОБАВЛЯЕШЬ ссылку на библиотеку и НЕ ОБЪЯВЛЯЕШЬ ПРОСТРАНСТВО ИМЕН!!! Обращаешься к объектам библиотеки через переменную типа "object":
Надеюсь что у меня получилось доходчиво объяснить механику работы, а то из меня объясняльщик хреновый (да простят меня Гуру форума за мою безграмотность).
0
|
|||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
|
| 28.01.2018, 16:25 [ТС] | |
|
Спасибо всем!
И за личные ответы, и за посты на форуме. Засел за учебники.
0
|
|
| 29.01.2018, 13:15 | |
Сообщение было отмечено KorSar72 как решение
Решение
KorSar72, предлагаю вариант решения без использования Word и Excel в явном виде (они вообще могут отсутствовать на компьютере). Требуется добавить ссылку на библиотеку (NET) DocumentFormat.OpenXml. Справедливо для структуры данных примера Prim_IsxData1.doc.
Файлы xlsx записываются по адресу исходных файлов docx.
0
|
|
|
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 19
|
||
| 29.01.2018, 23:22 [ТС] | ||
В очередной раз не могу найти у себя в VB 2010 Express в (NET) --- >> DocumentFormat.OpenXml. Пробую поставить с официального сайта www.microsoft.com следующие обновления и .... библиотеки: - OpenXMLSDKTool.msi - OpenXMLSDKv2.msi - office2007sp1-kb936982-fullfile-en-us.exe - office2007sp2-kb953195-fullfile-en-us.exe - office2007sp3-kb2526086-fullfile-en-us.exe п.с. - я уже себя чувствую даже не нубом....((((. Че ж все такое "кривое" у меня стоит на ноуте..... Добавлено через 1 час 11 минут Уряяя.... появилась библиотека! Кое-что все равно надо поправить... ошибки и предупреждения! Работаю. Добавлено через 32 минуты открываю код - и сразу ошибки вот в этих строках: - Imports DocumentFormat.OpenXml.Packaging - Imports DocumentFormat.OpenXml.Spreadsheet - Imports DocumentFormat.OpenXml Предупреждение 1-2-3 Пространство имен или тип, указанные в операторе Imports "DocumentFormat.OpenXml.Packaging" "DocumentFormat.OpenXml.Spreadsheet" "DocumentFormat.OpenXml" не содержат открытые члены или не могут быть найдены. Убедитесь, что пространство имен или тип определены и содержат хотя бы один открытый член. Убедитесь, что имя импортируемого элемента не было использовано в других Imports. Вот тут - https://msdn.microsoft.com/ru-... aging.aspx - написано: Пространство имен DocumentFormat.OpenXml.Packaging - Office 2013 и более поздней версии (самая ранняя - 2010). У меня стоит Office 2007 .. думаю в этом и кроется проблема. Надо офис ставить хотя-бы 2010. Добавлено через 10 минут С официального сайта: DocumentFormat.OpenXml.Packaging Namespace - Office 2007 Other Versions - This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. No comment! даже скачать неоткуда теперь ;(
0
|
||
| 30.01.2018, 00:20 | |
|
Не понимаю что там у вас происходит. Попробуйте установить библиотеку из прилагаемого архива. Как это нужно сделать:
Вообще это все как то непонятно. Было бы неплохо, если бы вы выложили весь проект (тот с которым вы работаете). И еще вопрос а какая ОС установлена на вашем компьютере.
0
|
|
| 30.01.2018, 00:20 | |
|
Помогаю со студенческими работами здесь
20
Чтение из файла, парсинг и вывод результата При сохранение файла word (права доступа на сохранение ограничены) появляется пустой файл
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|