2010-09-08 4 views
1

Мой друг сказал, что он собирается создать приложение внутри Excel. Я сказал ему, что, возможно, он имел в виду макросы, но он, похоже, убедился, что может создать типичное приложение CRUD INSIDE из Excel.Можете ли вы создавать приложения в Excel?

Это правда?

+0

Возможно как-то, да, с помощью макрокоманд/VBA. Но я бы сказал, что это звучит как Job for Access, он построен для CRUD. –

+0

Вот что я ему сказал, но он сказал, что собирается сделать это в Excel, потому что «у всех установлен Office». – 2010-09-08 15:44:35

+4

@ Серджио хорошо .... если он хочет это сделать, и тебе не нужно его поддерживать, почему бы и нет? :) –

ответ

5

Вы оба правы. Вы можете использовать VBA внутри Excel и некоторые функции формы для создания полностью функционального процесса CRUD с пользовательским интерфейсом внутри Excel, и вы можете сохранить эти данные в своей книге или в какой-либо другой области хранения (текст, XML, Access, другая СУБД). Это было бы не полное приложение , поскольку оно ограничено работой внутри приложения Excel, но это было бы нечто большее, чем простой макрос «сделайте эти заранее определенные шаги в порядке».

+2

Тот факт, что он работает только внутри Excel, несколько спорен, так как многие другие технологии требуют базового приложения/VM/runtime/interpreter. – tdammers

+0

@tdammers, это правильно. Он изменяет требование времени выполнения от, скажем, наличия .NET 4 на компьютере вместо рабочей копии Excel 2010. Есть, очевидно, другие соображения, которые необходимо сделать, такие как безопасность кода, разрешено ли пользователю/выбрано для запуска макросы и т. д. –

+0

Лично я бы сказал, что самая большая проблема заключается в огромном количестве боли, которую вам придется терпеть, чтобы получить простое приложение CRUD - вы будете работать с неоптимальным нестандартным хранилищем двигатель, полный причуд, код в VBA для крика вслух и всевозможные другие ограничения во всем мире. Если «нужно установить базу данных», это проблема, я бы просто написал собственное приложение и использовал Sqlite или что-то еще. – tdammers

0

Конечно, можно использовать .... VBA и заполнить ячейки с данными из БД, когда клетки изменяют значения обновления базы данных

Но почему бы вам это больше вопрос здесь

0

Это правда , VBA может вызывать COM, который может делать довольно мощные вещи. Я использовал файл excel для получения отчетов, созданных макросом внутри, который ищет множество удаленных баз данных для группировки и агрегирования информации. Вы можете изменить реестр, заставить его запускать программы, перезапустить ПК, показывать сообщения, создавать и редактировать файлы, использовать Word или Access, вызывать функции .NET. Все, что не требует сложной визуализации чего-то.

1

Конечно. Зачем вам это нужно?

Короткий ответ заключается в том, что с помощью VBA вы можете создавать фоновые рабочие методы, которые могут взаимодействовать с другими приложениями Office или с кодом .NET/COM. Однако, если вы хотите добавить сложную бизнес-логику на уровень представления Excel, я бы сначала подумал о создании приложения на C# и использовании оберток .NET Framework для взаимодействия с Office. Первое преимущество заключается в том, что вы используете Excel SOLELY для презентации, поддерживая дизайн программного обеспечения MVC-ish. Во-вторых, вы сохраняете код, в котором вы его найдете; в коде, не встроенный в документ.

+1

Что касается «зачем вам это нужно», часто говорят «используйте правильный инструмент для работы». Однако это предполагает, что у вас есть правильный инструмент! Иногда вам просто нужно «использовать инструмент, который у вас есть». Я был здесь. Буквально. Я написал много вещей (на предыдущем задании) с VBA в Excel и Access, которые я бы любил делать на C# или VB, но в то время у меня не было этих инструментов или возможности обходить установку Приложения. –

0

Вы можете использовать Excel/VBA, потому что:

  1. Вы VBA - полностью загруженным язык программирования (хотя OO нуждается в работе).
  2. Скалярные функции перегружены для работы с массивами.
  3. Порядочный IDE и средство отладки.
  4. Excel обеспечивает богатую платформу, управляемую событиями, и расширяет возможности VBA с помощью поведения электронной таблицы, которое «просто происходит», но требует много кодирования на традиционном языке.
  5. Виджеты формы, которые можно поместить в любом месте, а не только на форме.
  6. Простая, но адекватная векторная графика.
  7. Графики, графики и другие графики - все динамические.
  8. Автоматическое сохранение или, если требуется, интерфейсы практически для каждого файла и среды базы данных, включая XML и облачные сервисы.
  9. Реляционные таблицы являются родной структурой.

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