подключение к объектам Майкрософт Офис


#1

Всем привет! Вопрос: можно ли PascalABC.net подключить к объектам офисного пакета Майкрософт? Было бы не плохо для работы вместо Visual Basic!


#2

К базе данных MS Access - но это я уже пытался обсудить, ответа толком не было. К документам Word и рабочим книгам Excel - будет как раз-таки плохо: VBA специально “заточен” под работу с офисными программами, а на Паскале все будет выглядеть нелепо и длинно. Я больше десятка лет работал программным путем с офисными документами, что только ни перепробовал, пытаясь работать “мимо VBA” - кроме страшных тормозов, большой трудоемкости и неудобств в разработке не получил ничего.

Оптимальной оказалась следующая схема: из своей программы генерируем в текстовом файле программу на VBA, создаем объект в виде приложения Word/Excel, внедрем в его проект сгенерированную программу из файла и передаем ей управление. Всю основную работу делает VBA, а затем возвращает управление нашей программе и мы удаляем отработавший макрос из проекта. Такая схема позволяет, в частности, сделав расчет, сразу же оформить его в виде таблицы Excel с какими-угодно прибамбасами, например, с графиками.

Чтобы не быть голословным, простой пример. На приведенном фрагменте виден макрос VBA из 5 строк (а фактически, из трех значимых). Для тех, кто не знает VBA, поясню:

  • первая строка выбирает область (“диапазон”) ячеек A1:D3 и помещает его в виде объекта Range в переменную а, которую можно рассматривать, в том числе, как двумерный массив данных неопределенного типа;
  • вторая строка проверяет тип, который получает элемент a[2,2] (нумерация от 1) и если он типа “Дата”, то ему присваивается строковое значение “FIXED” (тут используется позднее связывание, жесткая типизация отсутствует);
  • третья строка - это вывод измененного массива на лист в ячейки B6:E8.

Можно представить и тихо ужаснуться, каких сил и знаний потребует реализация такого функционала в Паскале. НО если кто-то сможет реализовать - посмотрю с удовольствием.


#3

ну через ADO.NET все можно сделать


#4

Я не универовский, я по образованию технарь. Когда у нас начались спецкурсы, один наш профессор на первой своей лекции сказал примерно следующее:

  • инженер отличается от выпускника мехмата тем, что последний считает задачу решенной, написав в общем виде огромную систему уравнений или какой-нибудь зубодробительный интеграл, а мы должны сказать, из какой стали и какого сечения взять тавровую балку…

Рассмотрите, пожалуйста, с этой позиции свой ответ ))))


#5

Присоединяюсь к вышестоящим постам - покажите работающие примеры подключения! Не томите публику ожиданием! )


#6

Очень многие из нас простые технари,которые изучали Бейсик в году 1992 и на таких древних машинах и то мельком…Чем мне привлекает СуперПаскаль?!!Тем,что я понимаю как писать консольные приложения на Си, но я совсем не готов вникать в тонкости АПишных функций самой ОС для написания своих виндовс-приложений…Ваш СуперПаскаль среди сред разработки самый дружелюбный,но там нет раздела справки посвященному ADO NET…Не могли бы вы написать такой же справочник ,как справочник Шилдта по Си++,где все расжеванно так,что пользоваться Си может простой инженер…Другое дело ,что там нет понятной справки как подключить или скомпилировать библиотеку FLTK & Code::Blocks.Среду от Майкрософт я даже не рассматриваю в виду ее громоздкости…VBA мне не нравится ,после Паскаля ,я не могу понять этот язык,в нем нет скелета,он какой-то рыхлый…Мне очень нравился BP&TP ,просто красивый ,строгий и понятный язык Паскаля… Пожалуйста ,выложите работающий пример с подробными комментариями !!! Уверен ,Вашим Паскалем захотят пользоваться многие инженеры…Конечно есть Матлаб,Maple,но они платные и не работают без установки этих программ на компьютер…(нарушение авторских прав и т.д.) Я стою перед выбором между Си шарп,Питоном Лазарусом и Вашим Паскалем…я уже не в состоянии досконально овладеть каждым из них ,именно поэтому мне Ваш СуперПаскаль так интересен…Заранее благодарен за пример работы с Excel& ADO NET&PascalABCNET.