Git-friendly формат электронных таблиц? [закрыто]

35

Мы пытаемся переместить процесс документирования нашего проекта из Документов Google в набор автономных репозиториев Git.

Текстовые документы достаточно дружественны к Git, так как обычно нам не нужно никакого необычного форматирования, мы просто конвертируем все, скажем, в multimarkdown с возможностью встраивания LaTeX для сложных случаев.

Но электронные таблицы - это совсем другая история. Существует ли формат, похожий на электронные таблицы, который удобен для систем управления версиями (и, предпочтительно, так же удобочитаем, как и Markdown)?

«Дружественный формат»: Git хорошо работает с форматом ( не с XML) и генерирует удобочитаемые различия ( дополнительная конфигурация с использованием внешних инструментов - это нормально).

Очевидно, что варианты Markdown позволяют создавать статические таблицы, но я хотел бы иметь возможность использовать такие вещи, как и SUM()т. Д. (Обратите внимание, что CSV имеет ту же проблему.) Нет WYSIWYG в порядке, но приличная поддержка редактора / инструмента будет хороший.

Обновление: ответы только для Linux, пожалуйста. Нет MS Office вещи.

Александр Гладыш
источник
2
Что именно вы подразумеваете под "git-friendly"? Я не очень много использовал git, но он отлично справляется с бинарными файлами, и они могут быть версионированы и помечены как любой текстовый файл. Они просто не могут быть отражены, но это не обязательно.
Томас Оуэнс
Дружелюбный: я могу видеть различия и легко понять, что изменилось Обновил вопрос, чтобы отразить это. Кстати, AFAIR, git, при правильной настройке, может отображать различия для некоторых двоичных форматов (конечно, с помощью внешних инструментов).
Александр Гладыш
Я не могу поверить, что никто не спрашивал вас об этом, но зачем вам хранить электронные таблицы в репозитории проекта? для чего нужны электронные таблицы? обычно они настолько сложны, что вам нужны они в другом месте, и они обычно используются деловыми людьми ...
Рудольф Олах
2
Этот вопрос кажется не по теме, потому что он не имеет отношения к программированию.
Альтернативой попыткам найти или создать совершенно новый формат, подходящий для обычных различий, является поиск или создание инструмента для различий в обычных электронных таблицах и вывода текста. Это то, что делает программное обеспечение ExcelCompare с открытым исходным кодом, для Excel, OpenDocument и т. Д. И этот способ просмотра вопроса даже подходит для сайта вопросов и ответов по разработке программного обеспечения :) См . Контроль версий - Как мне различить две таблицы? - Переполнение стека и само программное обеспечение в na-ka-na / ExcelCompare
nealmcb

Ответы:

12

Вы также можете использовать libreOffice / open-office-spreadsheet-non-zip-xml-fileformat "* .fods", который является простым xml. Комментарий @glenatron относится и к этому формату.

Стандартный открытый формат электронных таблиц "* .ods" имеет формат zip xml и не очень подходит для git (похоже на ответ @ Egryan / @ emuddudley).

k3b
источник
Я хотел бы избежать XML. Обновил вопрос, чтобы отразить это.
Александр Гладыш,
2
1. LibreOffice действительно работает на Linux. 2. Нет, XML не является фигней MS . Однако XML и Git не очень хорошо работают вместе (см. Комментарий @ glenatron выше).
Александр Гладыш,
3
@LazyBadger: DiffDog: нет поддержки Linux, с закрытым исходным кодом, 500 $ / пользователь. Извините, но я сдам.
Александр Гладыш,
2
@AlexanderGladysh - Meld, xmldiff или Как я могу различить два файла XML? тема о СУ
Ленивый Барсук
1
@LazyBadger: обратите внимание, что трехстороннее слияние важнее, чем различие. (Но Google находит несколько подходящих инструментов для трехстороннего слияния Linux для XML.) Я попробую их на электронных таблицах LibreOffice, спасибо.
Александр Гладыш
7

Это может не соответствовать вашим потребностям, но может соответствовать другим. Org-mode для Emacs включает в себя table.el, что, наряду с конкретными усовершенствованиями Org-mode, обеспечивает чрезвычайно надежное решение для электронных таблиц, все в виде простого текста. Дополнительную информацию (намного больше, чем область действия этого сайта) можно найти на веб-сайте Org-mode и в руководстве , в частности, в руководстве по работе с электронными таблицами .

введите описание изображения здесь

Шон Оллред
источник
4

Как насчет pyspread ? Это мощный и поставляется с хорошим графическим интерфейсом.

Согласно странице « Первые шаги» :

Формат файла pys изменился в версии 0.2.0. Теперь это текстовый файл bzip2-ed со следующей структурой:

[Pyspread сохранить версию файла]

0,1

[Форма]

1000 100 3

[Сетка]

7 22 0 'Testcode1'

8 9 0 'Testcode2'

[атрибуты]

[] [] [] [] [(0, 0)] 0 'textfont' u'URW Chancery L '

[] [] [] [] [(0, 0)] 0 'pointsize' 20

[row_heights]

0 0 56,0

7 0 25,0

[col_widths]

0 0 80,0

[Макросы]

Макротекст

Тот факт, что это bzip2-ed, не помогает, но, по крайней мере, вы можете получить доступ к вполне читабельному тексту.

Лицензия GPLv3.

Климент Дж.
источник
4

CSV (значения, разделенные запятыми)

Если вы просто работаете с данными, это, вероятно, самый простой и наиболее поддерживаемый формат.

Должно облегчить жизнь, если вы хотите, чтобы разные версии.

Да, и Google Docs полностью поддерживает импорт / экспорт CSV.

Обновить:

Затем просто напишите сценарий Google Apps, чтобы упорядочить формулы при экспорте и сделать обратное при импорте. Вы должны будете использовать некоторую изобретательность, потому что формат, который вы ищете, не существует.

Эван Плейс
источник
2
К сожалению, CSV не поддерживает формулу и SUM()т. Д.
Александр Гладыш
Я обновил вопрос, чтобы сказать это явно.
Александр Гладыш
1
@AlexanderGladysh, на самом деле я бы сказал, что CSV может работать с уравнениями очень хорошо, если вы выберете правильный формат, проблема в том, что вам нужно настроить считыватель таким образом, чтобы он анализировал и оценивал эти уравнения.
zzzzBov
Emacs CSV-режим может быть хорошим инструментом. Я также рассматриваю Gnumerics для облегченного редактирования CSV. До сих пор, чтобы попробовать это широко.
Брейди Трейнор
1

Я знаю, что Microsoft Office 2007 и более поздние версии по умолчанию используют примирительный формат xml при сохранении. Так что это должно быть дружелюбно по отношению к Git. Open office также сохраняет в формате xml, если вы хотите использовать более открытое решение. Поскольку XML - это текстовый формат, git должен уметь с ним справляться достаточно хорошо.

Поскольку вы перемещаете его из Документов Google, вы можете загрузить их с открытыми документами на основе XML.

редактировать

Поскольку вам нужно решение, отличное от Microsoft / XML, вы всегда можете сохранить CSV в открытом офисе, хотя я не уверен, какую функциональность вы потеряете, сохранив этот формат.

Egryan
источник
3
Я видел некоторые проблемы с тем, что Git не соглашался с форматами XML или объединял их способами, которые не соответствуют формату документа. Я считаю, что это можно обойти, используя специальный инструмент слияния XML, но я не видел его в использовании.
Гленатрон
4
Формат книги Excel (* .xlsx) представляет собой набор файлов XML в ZIP-контейнере. Вы можете выбрать XML Spreadsheet 2003 (* .xml) для сохранения в одном XML-файле, но он поддерживает только часть функций Excel.
М. Дадли
1
XML не годится, как сказано в комментарии @glenatron выше (у меня тоже были такие проблемы). Кроме того: различия в XML не совсем понятны для ИМО. Обновил вопрос, чтобы отразить это.
Александр Гладыш,
Ну, CSV не поддерживает никаких формул. Тогда я могу просто использовать таблицы Маркдауна. Обновил вопрос, чтобы отразить это.
Александр Гладыш
0

Это может быть не совсем то, что вы хотите, я полагаю, что libre office позволяет ссылаться на внешний файл. Вы можете иметь электронную таблицу, которую вы рассматриваете как базу данных, и иметь статический файл libre, который будет вашим интерфейсом. Вы потеряли бы простой доступ к суммированию в ваших версионных файлах, если не перезвоните им, но это сработает.

Еще одна довольно большая проблема в этом заключается в том, что она является одной направленной.

Jpatrick
источник