Pax Beach Опубликовано 23 января, 2017 Поделиться Опубликовано 23 января, 2017 (изменено) Сделал пример приложения для работы с 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-файл проекта и щелкайте по порядку кнопки на форме. Скачать Delphi Word Test WordTest.zip Изменено 23 января, 2017 пользователем Andrey Efimov Залил архив на форум, в соответствии с правилами. Andrey Efimov, Равиль Зарипов (ZuBy), Kitty и 7 других 10 Цитата Ссылка на комментарий
-1 Vitaldj Опубликовано 24 января, 2017 Поделиться Опубликовано 24 января, 2017 Это конечно не кросс платформ, ибо OLE есть только в windows, но очень полезная статья. Те кому нужна только винда, must have! Pax Beach 1 Цитата Ссылка на комментарий
0 Alexander Опубликовано 24 января, 2017 Поделиться Опубликовано 24 января, 2017 А есть предложения как победить подключение к Word Starter? Данная версия не обладает полным функционалом, в частности нет регистрации в RegEdit, поэтому ошибка на этапе подключения. Цитата Ссылка на комментарий
0 kami Опубликовано 24 января, 2017 Поделиться Опубликовано 24 января, 2017 1 час назад, Alexander сказал: А есть предложения как победить подключение к Word Starter? никак. Нужно смотреть библиотеки, позволяющие работать с OpenDocument (или как-то так) форматом, и создавать документ самому. Стартер не дает возможности пользоваться COM-объектами. Alexander 1 Цитата Ссылка на комментарий
0 krapotkin Опубликовано 24 января, 2017 Поделиться Опубликовано 24 января, 2017 есть Open/Libre Office и библиотеки для работы с ним Alexander и Kitty 2 Цитата Ссылка на комментарий
0 kami Опубликовано 24 января, 2017 Поделиться Опубликовано 24 января, 2017 26 минут назад, krapotkin сказал: есть Open/Libre Office первое вычеркнуть. Остановилось в развитии, команда разогнана, перспектив нет. Цитата Ссылка на комментарий
0 krapotkin Опубликовано 24 января, 2017 Поделиться Опубликовано 24 января, 2017 да. но установки есть, а работа с ними общая. Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 Можно с MS офисом работать через ADO! Работает даже без установленного офиса! Делал такое... Цитата Ссылка на комментарий
0 Vitaldj Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 (изменено) 5 минут назад, wamaco сказал: Можно с MS офисом работать через ADO! Работает даже без установленного офиса! Делал такое... Хахахаа, это как без установленного??? Это на ADO)). Технология автоматизации подразумевает установленный офис, так так файл, допустим doc, делается самим движком MS word. Программа дает команда, открыть ворд, сделать пустой файл, свтавить строку и тд. И куда буду передаваться команды без ворда? Прога просто скажет, что у тебя на зарегистрирован класс (не помню какой). Да поправьте меня, гуру, если я не прав?! Изменено 10 марта, 2017 пользователем Vitaldj Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 (изменено) Как то так делал, пишу по памяти.... Все работало без установленного офиса //Строка подключения С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 и т.д. / Изменено 10 марта, 2017 пользователем wamaco Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 http://www.webdelphi.ru/2012/01/bystraya-obrabotka-dannyx-excel-v-delphi/ Pax Beach 1 Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 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 Pax Beach 1 Цитата Ссылка на комментарий
0 Pax Beach Опубликовано 10 марта, 2017 Автор Поделиться Опубликовано 10 марта, 2017 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 Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 (изменено) Без установленного Excel она не будет работать. Эта библиотека ставиться с excel Изменено 10 марта, 2017 пользователем Vitaldj Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 (изменено) Только что, Vitaldj сказал: Без установленного Excel она не будет работать. БУДЕТ! Проверено! Делал загрузку с EXCEL файла в базу, админ запретил на сервер ставить офис, подключались через ADO и все данные без офиса установленного цепляли! Полет нормальный! Изменено 10 марта, 2017 пользователем wamaco Цитата Ссылка на комментарий
0 Vitaldj Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 Попробуй написать приложение, где вставляется хоть 1 строка в excel. Имеется ввиду делается файл excel. Скинь сюда, я проверю. И посмотрим, кто прав. Цитата Ссылка на комментарий
0 Vitaldj Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 2 минуты назад, wamaco сказал: БУДЕТ! Проверено! Делал загрузку с EXCEL файла в базу, админ запретил на сервер ставить офис, подключались через ADO и все данные без офиса установленного цепляли! Полет нормальный! Я про "Деланье" файла excel. Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 Только что, Vitaldj сказал: Попробуй написать приложение, где вставляется хоть 1 строка в excel. Имеется ввиду делается файл excel. Скинь сюда, я проверю. И посмотрим, кто прав. Про вставку не скажу, но читает замечательно! Надо проверить на создание и вставку! Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 Запрос на insert попробовать сделать и предварительно из ресурсов своей проги сохранять пустой файл EXCEL Цитата Ссылка на комментарий
0 Vitaldj Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 Я, проблемы Excel, решаю через flexCel, эффективно, кроссплатформенность и работает как часы. Поэтому нет желания это проверять)). krapotkin 1 Цитата Ссылка на комментарий
0 Major Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 а как открыть вордовский файл в android-приложении, написанном на fmx? Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 7 часов назад, Vitaldj сказал: Я, проблемы Excel, решаю через flexCel, эффективно, кроссплатформенность и работает как часы. Поэтому нет желания это проверять)). То что Вы используете flexCel, никак не относится к теме... очень много сторонних компонентов, которые можно использовать для работы с Excel... Цитата Ссылка на комментарий
0 Vitaldj Опубликовано 11 марта, 2017 Поделиться Опубликовано 11 марта, 2017 10 часов назад, wamaco сказал: То что Вы используете flexCel, никак не относится к теме... очень много сторонних компонентов, которые можно использовать для работы с Excel... То что не относиться к теме разговора - абсолютно согласен и спорить не буду. Но что МНОГО сторонних компонентов, я бы поспорил, но это тоже не относится к теме. Поэтому тоже не вижу смысла писать. Цитата Ссылка на комментарий
Вопрос
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-файл проекта и щелкайте по порядку кнопки на форме.
Скачать Delphi Word Test
WordTest.zip
Изменено пользователем Andrey EfimovЗалил архив на форум, в соответствии с правилами.
Ссылка на комментарий
22 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.