Перейти к содержанию
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
Опубликовано
26 минут назад, krapotkin сказал:

есть Open/Libre Office

первое вычеркнуть.

Остановилось в развитии, команда разогнана, перспектив нет.

  • 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
Опубликовано (изменено)

Без установленного Excel она не будет работать. Эта библиотека ставиться с excel

Изменено пользователем Vitaldj
  • 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 эмодзи.

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

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

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

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