Существует два основных способа получения информации из документа Word и в базу данных Access: автоматизация объектной модели Word с использованием кода VBA, работающего в Word или Access, или извлечение WordOpenXML, который составляет документ Word. Вы указываете, что вы наклоняетесь к второму варианту.
Здесь, опять же, существует целый ряд подходов доступны:
- Использование VBA в слове или Access для извлечения WordOpenXML документа, открытого в пользовательском интерфейсе приложения Word.
- Используйте VBA in Access вместе с инструментами, отличными от VBA, для «взломать» Zip-файл и извлечь XML-файл.
- Используйте инструменты, доступные в .NET Framework, чтобы извлечь содержимое ZIP-файла и записать его в Access, используя соединение OLE DB.
Я понимаю, что ваша цель - воссоздать документ на более позднем этапе для печати, поэтому вы хотите сохранить все форматирование. Кроме того, вы хотите иметь возможность читать контент из Access.
Я считаю, что это потребует как минимум четырех полей в таблице Access:
- ID
- Название
- Текст песни
- Полный WordOpenXML для повторного создания документа
Вы не упомянули (4) в обсуждении и описании проблемы, но если вы хотите сохранить форматирование И вы хотите t, чтобы иметь возможность читать содержимое, я считаю, что это необходимо. Хотя WordOpenXML «читабельна», там много разметки, которая не делает чтение удобным.
Если бы все было одинаково, я бы выбрал либо VBA, работающий над открытым документом Word, либо .NET-подход, используя Open XML SDK (free download .NET-библиотеку, которую вы можете ссылаться в Visual Studio и распространять с помощью решений).
Важно помнить о хранении Word Open XML в базе данных. Если что-то не изменилось в Access, вы не можете сохранить ZIP-файл - вам нужен «потоковый» формат. Это будет формат OOXML OPC с плоским файлом.
Когда вы читаете WordOpenXML из документа с помощью VBA, это то, что вы получаете, поэтому это вариант для меня. Open SDK SDK не имеет этого параметра, но для этого есть код, доступный от Eric White's blog.
Когда вы позже захотите воссоздать и распечатать документ, этого должно быть достаточно, чтобы передать WordOpenXML в файл с расширением .xml. Или вы можете преобразовать его обратно в zoc-файл docx (тот же блог).
Получение XML тривиально - просто откройте .docx с помощью zip-программы и извлеките подпапку «word». Будет ли это действительно полезным, это еще один вопрос ... – Andre
Будет ли это разовым импортом информации из одного файла .docx? Кроме того, является ли информация в таблице в документе Word? –
Да, пожалуйста, предоставьте дополнительную информацию о том, что и зачем вам нужно хранить содержимое документа Word. Это единственный способ предложить целенаправленные предложения. –