Перейти к содержанию
Fire Monkey от А до Я
  • 0

Простой пример работы с MS Word в Delphi FMX


Pax Beach

Вопрос

Сделал пример приложения для работы с Microsoft Word из приложения Delphi.

Такое приложение может использоваться для обмена данными между объектами семейства Microsoft Office.

 

Исходные коды приложения помогут вам понять, как работать с объектной моделью Microsoft Word.

Чтобы лучше разобраться с нюансами Word, предлагаю ознакомиться со справочником Word VBA reference на MSDN.

Проект создан в среде FireMonkey Delphi Berlin 10.1
Протестирован в MS Word 2010, 2016, Windows 7x64 и 10x64.
Чтобы посмотреть пример, просто распакуйте zip-файл проекта и щелкайте по порядку кнопки на форме.

2017-01-20_09-16-33-768x561[1].png

 

Скачать Delphi Word Test

 

WordTest.zip

Изменено пользователем Andrey Efimov
Залил архив на форум, в соответствии с правилами.
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

А есть предложения как победить подключение к Word Starter?

Данная версия не обладает полным функционалом, в частности нет регистрации в RegEdit, поэтому ошибка на этапе подключения.

Ссылка на комментарий
  • 0
1 час назад, Alexander сказал:

А есть предложения как победить подключение к Word Starter?

никак. Нужно смотреть библиотеки, позволяющие работать с OpenDocument (или как-то так) форматом, и создавать документ самому. Стартер не дает возможности пользоваться COM-объектами.

Ссылка на комментарий
  • 0
5 минут назад, wamaco сказал:

Можно с MS офисом работать через ADO!

Работает даже без установленного офиса!

Делал такое...

Хахахаа, это как без установленного??? Это на ADO)). Технология автоматизации подразумевает установленный офис, так так файл, допустим doc, делается самим движком  MS word. Программа дает команда, открыть ворд, сделать пустой файл, свтавить строку и тд. И куда буду передаваться команды без ворда? Прога просто скажет, что у тебя на зарегистрирован класс (не помню какой).

Да поправьте меня, гуру, если я не прав?!

Изменено пользователем Vitaldj
Ссылка на комментарий
  • 0
Как то так делал, пишу по памяти....
Все работало без установленного офиса


//Строка подключения
СonnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source= '  + СокрЛП(ФайлEXCEL) + ';Extended Properties="Excel 8.0;HDR=YES;IMEX=1;';
ADODBConnection :=  COMОбъект("ADODB.Connection");
ADODBConnection.ConnectionString :=  СonnectionString;
ADODBConnection.Open();
ТекстЗапроса := "SELECT * FROM [" + ИмяЛиста + "$]";
ADODBRecordset := COMОбъект("ADODB.Recordset");
ADODBRecordset.Open(ТекстЗапроса, ADODBConnection);
IF (ADODBRecordset.EOF OR ADODBRecordset.BOF) THEN

и т.д.
/

 

Изменено пользователем wamaco
Ссылка на комментарий
  • 0
15 минут назад, Vitaldj сказал:

Хахахаа, это как без установленного??? Это на ADO)). Технология автоматизации подразумевает установленный офис, так так файл, допустим doc, делается самим движком  MS word. Программа дает команда, открыть ворд, сделать пустой файл, свтавить строку и тд. И куда буду передаваться команды без ворда? Прога просто скажет, что у тебя на зарегистрирован класс (не помню какой).

Да поправьте меня, гуру, если я не прав?!

получите гранату

http://delphi.ucoz.org/publ/dostup_i_upravlenie_dannymi_ms_excel_cherez_ado_i_delphi/6-1-0-93

Ссылка на комментарий
  • 0
4 минуты назад, wamaco сказал:

Как то так делал, пишу по памяти....
Все работало без установленного офиса


Строка подключения
СonnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source= '  + СокрЛП(ФайлEXCEL) + ';Extended Properties="Excel 8.0;HDR=YES;IMEX=1;';

ADODBConnection :=  COMОбъект("ADODB.Connection");

ADODBConnection.ConnectionString :=  СonnectionString;
ADODBConnection.Open();

="SELECT * FROM ["++"$]"; //= "ADODB.Recordset");.(,);(..) THEN

и т.д.

 

 

Технически такое возможно, если драйвер Jet позволяет работать с файлами Excel, как с источниками данных без установленного пакета MS Office.

Фактически ADODB дергает нужную DLL, которая определяет логику работы с источником.

Ссылка на комментарий
  • 0
Только что, Vitaldj сказал:

Без установленного Excel она не будет работать.

БУДЕТ! Проверено!

Делал загрузку с EXCEL файла в базу, админ запретил на сервер ставить офис, подключались через ADO  и все  данные без офиса установленного цепляли! Полет нормальный!

Изменено пользователем wamaco
Ссылка на комментарий
  • 0

Попробуй написать приложение, где вставляется хоть 1 строка в excel. Имеется ввиду делается файл excel. Скинь сюда, я проверю. И посмотрим, кто прав.

Ссылка на комментарий
  • 0
2 минуты назад, wamaco сказал:

БУДЕТ! Проверено!

Делал загрузку с EXCEL файла в базу, админ запретил на сервер ставить офис, подключались через ADO  и все  данные без офиса установленного цепляли! Полет нормальный!

Я про "Деланье" файла excel.

Ссылка на комментарий
  • 0
Только что, Vitaldj сказал:

Попробуй написать приложение, где вставляется хоть 1 строка в excel. Имеется ввиду делается файл excel. Скинь сюда, я проверю. И посмотрим, кто прав.

Про вставку не скажу, но читает замечательно!

Надо проверить на создание и вставку!

Ссылка на комментарий
  • 0
7 часов назад, Vitaldj сказал:

Я, проблемы Excel, решаю через flexCel, эффективно, кроссплатформенность и работает как часы. Поэтому нет желания это проверять)).

То что Вы используете flexCel, никак не относится к теме... очень много сторонних компонентов, которые можно использовать для работы с Excel... 

Ссылка на комментарий
  • 0
10 часов назад, wamaco сказал:

То что Вы используете flexCel, никак не относится к теме... очень много сторонних компонентов, которые можно использовать для работы с Excel... 

То что не относиться к теме разговора - абсолютно согласен и спорить не буду. Но что МНОГО сторонних компонентов, я бы поспорил, но это тоже не относится к теме. Поэтому тоже не вижу смысла писать.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...