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).


Я хотел бы избежать 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 в открытом офисе, хотя я не уверен, какую функциональность вы потеряете, сохранив этот формат.


3
Я видел некоторые проблемы с тем, что Git не соглашался с форматами XML или объединял их способами, которые не соответствуют формату документа. Я считаю, что это можно обойти, используя специальный инструмент слияния XML, но я не видел его в использовании.
Гленатрон

4
Формат книги Excel (* .xlsx) представляет собой набор файлов XML в ZIP-контейнере. Вы можете выбрать XML Spreadsheet 2003 (* .xml) для сохранения в одном XML-файле, но он поддерживает только часть функций Excel.
М. Дадли

1
XML не годится, как сказано в комментарии @glenatron выше (у меня тоже были такие проблемы). Кроме того: различия в XML не совсем понятны для ИМО. Обновил вопрос, чтобы отразить это.
Александр Гладыш,

Ну, CSV не поддерживает никаких формул. Тогда я могу просто использовать таблицы Маркдауна. Обновил вопрос, чтобы отразить это.
Александр Гладыш

0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.