Лучший способ сделать контроль версий для MS Excel - PullRequest
160 голосов
/ 25 сентября 2008

Какие системы контроля версий вы использовали с MS Excel (2003/2007)? Что бы вы порекомендовали и почему? Какие ограничения вы обнаружили в вашей системе контроля версий с самым высоким рейтингом?

Чтобы представить это в перспективе, вот несколько вариантов использования:

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

Ответы [ 25 ]

2 голосов
/ 09 августа 2016

Я хотел бы порекомендовать отличный инструмент с открытым исходным кодом под названием Rubberduck , в котором встроен контроль версий кода VBA.

1 голос
/ 28 октября 2010

Я тоже изучал это. Кажется, что последняя версия Team Foundation Server 2010 может иметь надстройку Excel.

Вот подсказка:

http://team -foundation-server.blogspot.com / 2009/07 / tf84037-там было-проблемно-initializing.html

1 голос
/ 29 сентября 2008

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

1 голос
/ 04 января 2012

Вы должны попробовать DiffEngineX. Он может быть вызван программно, а также из командной строки, принимая аргументы командной строки. Он сравнивает не только ячейки электронных таблиц Excel, но и макросы Visual Basic, встроенные в рабочие книги. Также сравниваются имена и комментарии, определенные в Excel, которые упускают многие бесплатные инструменты. Его можно скачать с

http://www.florencesoft.com/excel-differences-download.html

Я уверен, что в вашей системе управления версиями есть опция или поле, чтобы вы могли автоматически вызывать DiffEngineX со своими оригинальными и измененными рабочими книгами Excel.

1 голос
/ 12 апреля 2016

На самом деле существует всего несколько решений для отслеживания и сравнения изменений в макрокоде - большинство из них уже были названы здесь. Я просматривал Интернет и наткнулся на этот новый инструмент, о котором стоит упомянуть:

Управление версиями XLTools для макросов VBA

  • контроль версий для листов Excel и модулей VBA
  • предварительный просмотр и изменение изменений перед фиксацией версии
  • отлично подходит для совместной работы нескольких пользователей над одним файлом (отслеживать, кто что изменил / когда / комментирует)
  • построчно сравнивать версии и выделять изменения в коде
  • подходит для пользователей, которые не разбираются в технологиях или не разбираются в Excel
  • История версий хранится в Git-репозитории на вашем ПК - любая версия может быть легко восстановлена ​​

Версии кода VBA бок о бок, изменения визуализируются

1 голос
/ 25 сентября 2008

Используйте любой из стандартных инструментов контроля версий, таких как SVN или CVS. Ограничения будут зависеть от цели. Помимо небольшого увеличения размера хранилища, я не столкнулся с какими-либо проблемами

1 голос
/ 12 октября 2014

После поиска возрастов и опробования множества различных инструментов, я нашел свой ответ на проблему контроля версий vba здесь: https://stackoverflow.com/a/25984759/2780179

Это простое дополнение к Excel, код которого можно найти здесь

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

0 голосов
/ 25 сентября 2008

Это зависит от того, какой уровень интеграции вы хотите, я использовал Subversion / TortoiseSVN, который подходит для простого использования. Я также добавил в ключевые слова, но есть риск повреждения файла. В Subversion есть возможность сделать подстановку ключевых слов фиксированной длины, и, насколько я понимаю, она будет работать, если фиксированная длина будет четной, но не нечётной. В любом случае вы не получаете никакой полезной функциональности diff, я думаю, что есть коммерческие продукты, которые будут делать diff. Я нашел кое-что, что делало diff, основанное на преобразовании материала в простой текст и сравнении этого, но это было не очень приятно.

0 голосов
/ 07 января 2016

Моя компания выполняет значительную работу по автоматизации решений Microsoft Office, поэтому я написал файл .DLL, который будет экспортировать источник решения при каждом сохранении шаблона. Он создает папку с именем Source в качестве дочернего элемента папки, в которой сохранен шаблон, а под источником создается папка с тем же именем, что и у проекта VBA. В папке проекта он экспортирует весь исходный код для модулей, классов и пользовательских форм. Это расположение было выбрано для упрощения управления источником для больших коллекций шаблонов. DLL может разблокировать заблокированные проекты, чтобы получить доступ к проекту VBA, если у вас есть локальный файл конфигурации или файл глобальной конфигурации. Используя этот инструмент, разработчики могут работать над шаблонами для своего сердца и использовать свой любимый инструмент контроля версий для управления своей работой. Мы используем Git главным образом в нашей среде, и мы храним все двоичные файлы шаблонов, а также ресурсы VBA под контролем версий.

0 голосов
/ 25 сентября 2008

Он должен работать с большинством VCS (в зависимости от других критериев, которые вы можете выбрать SVN, CVS, Darcs, TFS и т. Д.), Однако на самом деле это будет полный файл (потому что это двоичный формат), что означает, что «что изменилось» "вопрос не так легко ответить.

Вы все еще можете полагаться на сообщения журнала , если люди их заканчивают, но вы также можете попробовать новые форматы на основе XML из Office 2007, чтобы получить некоторую наглядность (хотя все равно будет сложно прополоть через тонны XML, плюс AFAIK файл XML заархивирован на диске, поэтому вам понадобится хук перед фиксацией, чтобы разархивировать его для правильной работы различий текста).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...