2012-02-06 4 views
0

Я столкнулся с огромным вызовом с некоторыми листами Excel, которые были написаны в 90-х годах для некоторых финансовых расчетов. В основном существует около 100 различных листов Excel (по-разному по структуре, контенту, формулам, макросам и т. Д.), И это необходимо интегрировать в одно приложение и таким образом вывести из эксплуатации все эти преимущества.Excel как источник данных?

Некоторые из особенностей листа первенствовать:

  • Каждый Excel лист имеет некоторое определенное количество листов с формулами и макросы, связанные с ним. Макросы написаны в VBA и используют обширные дополнения в виде XLL.

  • Каждый лист Excel также имеет определенные пользовательские рабочие листы, которые полагаются на пользовательские входные данные и предопределенные листы для вычисления цен на инструменты. Самое главное, что пользователь вводит данные в созданные пользователем листы, что которые указаны в предварительно определенных листах. Предварительно определенные листы вычисляют что-то на основе этого, и результат снова ссылается на пользовательские листы.

Мы думали о различных подходах к decommision это, как показано ниже:

  • использования служб Excel с Sharepoint 2010, разоблачить лист первенствовать в качестве веб-службы и написать клиентское приложение, которое будет делать то определяемые пользователем часть, а затем связываются с услугами первенствовать на результат. (он также будет иметь возможность написать предопределенными листов, размещенных в службах Excel)

  • автоматизации Использование Excel (??)

Мой вопрос к вам - это то, что было бы наиболее целесообразным подходом здесь, чтобы вывести из эксплуатации эти преимущества? Все, что мне нужно сделать, это написать в excel ячейки, позволить формулам/макросам играть там часть, чтобы вычислить результат, получить назад. Мы также очень стараемся не создавать все настройки excel, т. е. создавать формулу/addins, которая есть на месте, а скорее консолидировать их.

Любой совет будет очень благодарен !!!

Cheers, -Mike

+0

Службы Excel на Sharepoint были бы самым «дружественным к карьере». Для программистов с этим опытом есть много работы. – jfrankcarr

+0

Функции VBA обычно не запускаются на сервере, поэтому сначала вам нужно будет преобразовать все эти функции. По моему мнению, ахиллесова пята для служб Excel. –

+0

@Paul: Как мы это делаем? Существует много кода, который попал в лист excel как код VBA, есть ли более простой способ превратить их во что-то и использовать его? – Mike

ответ

1

Если мы будем игнорировать конкретные технологии, у вас есть три основных варианта, хотя комбинации:

  1. сохранить существующие рабочие книги Excel в фоновом режиме и обеспечивают новый передний конец.
  2. Перенесите VBA в новый инструмент.
  3. Определите с вашими пользователями функциональность, в которой они нуждаются сегодня и завтра, и реализуйте это.

Я был бы удивлен, если бы Вариант 1 не дал вам самую дешевую и быструю интеграцию. Недостатком является то, что вы остаетесь зависимыми от тех старых книг Excel.Являются ли они основаны на ранних версиях Excel или они были перенесены вперёд? Если нет, они работают с новейшими аппаратными и операционными системами? Будут ли они работать с завтрашним оборудованием и операционными системами? Microsoft прилагает огромные усилия для поддержания обратной совместимости, но это не означает, что они обеспечивают 100% обратную совместимость и что они могут или будут поддерживать обратную совместимость в будущем.

Возможно ли вариант 2? Знаете ли вы, что делает каждая книга? VBA можно перенести/преобразовать в новый инструмент, но как насчет надстроек? У вас есть источник? У вас есть документация? Проблема с документацией заключается в том, что некоторые ошибки становятся недокументированными функциями, которые люди используют.

С Вариантом 3 вам не нужно беспокоиться о том, чтобы принести что-либо вперед. Вы выбираете правильный инструмент на сегодня и завтра и используете его для реализации необходимых функций. Вы должны быть осторожны. Если вы спросите пользователей, нужен ли им объект X, они скажут да независимо. Заданный вопрос: что вы используете для объекта X?

У каждого из этих вариантов есть риски? У вас есть информация для доступа к рискам? Можете ли вы оценивать работу и риски, связанные с каждым из этих вариантов? Только тогда, когда вы сможете, вы сможете выбрать подход, а затем технологию.

+0

Спасибо Tony.I думал о варианте 1, но здесь проблема в том, что excel - это один инструмент, который вы не можете оставить в фоновом режиме и разрешить пользователю работать с новым интерфейсом. Каждый раз, когда вы вносите изменения в excel, он будет продолжать запрашивать вас для сохранения действий. Или я что-то упускаю, есть способ сохранить книгу excel в фоновом режиме и позволить пользователю играть с совершенно новым визуальным эффектом, который идет и изменяет перенести книгу и прочитать значения из нее? – Mike

+0

Native Excel предназначен для прямого пользовательского контроля. Большое количество VBA написано для повышения удобства пользователей и предполагает, что пользователь должен ответить на вопросы. Но VBA не нужно писать так. Например, если не сказано, «Workbook.Close» попросит пользователя сохранить книгу. Но VBA может сохранить книгу до ее закрытия. Или 'Workbook.Close' имеет параметры:« Не сохранять »или« Сохранить без запроса ». Это связано с обновлением VBA, чтобы удалить ситуацию, в которой Excel задает вопросы пользователю. _ Продолжается в следующем комментарии._ –

+0

Альтернативой является интерфейс, который перехватывает вопросы и отвечает на них сам или запрашивает у пользователя не-Excel. Вы знаете достаточно, чтобы выбирать между этими подходами? Надеюсь, что я несправедлив, но создается впечатление, что вы хотите подобрать подход и технологию, прежде чем определять проблему и определять ее. –

1

Я не знаком с Sharepoint, поэтому не могу сравнивать, но с автоматизацией Excel действительно можно открыть лист, введите значения там и читать результаты. Это даже можно сделать визуально, как будто кто-то открывает Excel на экране и что-то делает в нем. Я бы использовал некоторый современный язык .Net, если ваши старые листы совместимы.

+0

Это еще одно требование, т. Е. Лист excel должен быть полностью скрыт от пользователя, и он должен только иметь возможность играть с листами/визуальными эффектами, которые он создает. Для подхода к автоматизации мы можем скрыть предопределенные листы, записать в него значения, позволить формулам/макросам что-то вычислить, а затем прочитать их обратно? – Mike

+0

Я думал, что вы полностью закрываете Excel и позволяете пользователю взаимодействовать с совершенно новым программным обеспечением. Если вы хотите, чтобы пользователь взаимодействовал с Excel, я боюсь, что он сможет открыть любой лист, который вы скрываете (если он знает, как это сделать). – Dims

+0

Как я могу полностью закрыть Excel от пользователя, но все же внести в него изменения, обновить его и прочитать значения обратно? Я пробовал автоматизировать путь, и я мог видеть, что он предлагает сохранить каждый раз, когда вы совершаете операцию обряда, или я что-то пропустил полностью? – Mike

Смежные вопросы