Format arkusza kalkulacyjnego przyjazny dla Gita? [Zamknięte]

35

Staramy się przenieść proces dokumentacji projektu z Dokumentów Google do zestawu hostowanych przez siebie repozytoriów Git.

Dokumenty tekstowe są wystarczająco przyjazne dla Gita, ponieważ zwykle nie potrzebujemy żadnego fantazyjnego formatowania, po prostu przekonwertujemy wszystko na, powiedzmy, multimarkdown z opcją osadzenia LaTeXa w skomplikowanych przypadkach.

Ale arkusze kalkulacyjne to zupełnie inna historia ... Czy istnieje format (podobny do arkusza kalkulacyjnego), który jest przyjazny dla systemów kontroli wersji (a najlepiej jest tak czytelny dla ludzi jak Markdown)?

„Przyjazny format”: Git dobrze współpracuje z formatem (nie obsługuje XML) i generuje różnice czytelne dla człowieka ( dodatkowa konfiguracja z użyciem zewnętrznych narzędzi jest OK).

Oczywiście, smaki Markdown pozwalają budować statyczne tabele, ale chciałbym móc używać rzeczy takich jak SUM()itp ... (Uwaga: CSV ma ten sam problem.) Żadne WYSIWYG nie jest OK, ale przyzwoita obsługa edytora / narzędzi byłaby miły.

Aktualizacja: Proszę tylko o odpowiedzi przyjazne dla systemu Linux. Brak materiałów MS Office.

Alexander Gladysh
źródło
2
Dokładnie co rozumiesz przez „przyjazny dla gita”? Nie używałem git za dużo, ale dobrze radzi sobie z plikami binarnymi i można je wersjonować i oznaczać jak każdy plik tekstowy. Po prostu nie można ich rozróżnić, ale może to nie być konieczne.
Thomas Owens
Przyjazny: mogę zobaczyć różnicę i łatwo dowiedzieć się, co zostało zmienione. Zaktualizowałem pytanie, aby to odzwierciedlić. BTW, AFAIR, git, jeśli są odpowiednio skonfigurowane, mogą wyświetlać różnice dla niektórych formatów binarnych (oczywiście przy pomocy zewnętrznych narzędzi).
Alexander Gladysh
Nie mogę uwierzyć, że nikt cię o to nie pytał, ale dlaczego musisz przechowywać arkusze kalkulacyjne w repozytorium projektów? do czego służą arkusze kalkulacyjne? zazwyczaj są na tyle skomplikowane, że potrzebujesz ich w innym miejscu i są zwykle używane przez ludzi biznesu ...
Rudolf Olah
2
To pytanie wydaje się nie na temat, ponieważ nie jest związane z programowaniem.
Alternatywą dla próby znalezienia lub utworzenia zupełnie nowego formatu odpowiedniego dla zwykłych różnic jest znalezienie lub stworzenie narzędzia do różnicowania zwykłych arkuszy kalkulacyjnych i generowania tekstu. Tak właśnie działa oprogramowanie ExcelCompare o otwartym kodzie źródłowym, w przypadku Excela, OpenDocument itp. I taki sposób przeglądania pytania jest odpowiedni nawet dla witryny Q&A poświęconej programowaniu :) Zobacz kontrolę wersji - Jak odróżnić dwa arkusze kalkulacyjne? - Przepełnienie stosu, a samo oprogramowanie jest na na-ka-na / ExcelCompare
nealmcb

Odpowiedzi:

12

Możesz także użyć libreOffice / open-office-spreadsheet-non-zip-xml-fileformat „* .fods”, który jest zwykłym plikiem xml. Komentarz @glenatron dotyczy również tego formatu.

Standardowy format otwartego pakietu kalkulacyjnego „* .ods” jest skompresowany xml i nie jest tak odpowiedni dla git (podobny do odpowiedzi @ Egryan / @ emuddudley).

k3b
źródło
Chciałbym uniknąć XML. Zaktualizowałem pytanie, aby to odzwierciedlić.
Alexander Gladysh
2
1. Rzeczywiście LibreOffice działa w systemie Linux. 2. Nie, XML to nie bzdury MS . Jednak XML i Git nie działają dobrze razem (patrz komentarz @ glenatron powyżej).
Alexander Gladysh
3
@LazyBadger: DiffDog: brak wsparcia dla systemu Linux, zamknięte źródło, 500 $ / użytkownika. Przepraszam, ale zdam.
Alexander Gladysh
2
@AlexanderGladysh - Meld, xmldiff lub Jak mogę różnicować dwa pliki XML? temat na SU
Lazy Badger
1
@LazyBadger: Zauważ, że scalanie 3-kierunkowe jest ważniejsze niż różnicowanie. (Ale Google znajduje kilka odpowiednich linuksowych narzędzi do łączenia w 3 wierszach XML). Wypróbuję je przeciwko arkuszom kalkulacyjnym LibreOffice, dzięki.
Alexander Gladysh
7

To może nie pasować do twoich potrzeb, ale może pasować do innych. Zawiera tryb Org dla Emacsa table.el, który wraz ze szczególnymi ulepszeniami trybu Org zapewnia niezwykle niezawodne rozwiązanie dla arkuszy kalkulacyjnych, wszystkie w postaci zwykłego tekstu. Więcej informacji (znacznie więcej niż zakres tej strony) jest dostępnych na stronie internetowej i podręczniku trybu organizacji , w szczególności samouczku arkusza kalkulacyjnego .

wprowadź opis zdjęcia tutaj

Sean Allred
źródło
4

Co z pyspread ? Jest potężny i ma ładne GUI.

Według strony Pierwsze kroki :

Format pliku pys zmienił się w wersji 0.2.0. Jest to teraz plik tekstowy w formacie bzip2 o następującej strukturze:

[Wersja pliku zapisu Pyspread]

0,1

[kształt]

1000 100 3

[krata]

7 22 0 „Kod testowy 1”

8 9 0 „Testcode2”

[atrybuty]

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

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

[row_heights]

0 0 56,0

7 0 25,0

[col_widths]

0 0 80,0

[makra]

Tekst makra

Fakt, że jest to bzip2-ed, nie pomaga, ale przynajmniej możesz uzyskać dostęp do dość czytelnego tekstu.

Licencja to GPLv3.

Clement J.
źródło
4

CSV (wartości oddzielone przecinkami)

Jeśli pracujesz tylko z danymi, jest to prawdopodobnie najprostszy i najczęściej obsługiwany format.

Powinno to ułatwić życie, jeśli chcesz różnicować wersje.

Aha, a Dokumenty Google w pełni obsługują import / eksport CSV.

Aktualizacja:

Następnie po prostu napisz skrypt Google Apps, aby skreślić formuły przy eksporcie i zrobić odwrotnie przy imporcie. Musisz użyć pomysłowości, ponieważ format, którego szukasz, nie istnieje.

Evan Plaice
źródło
2
Niestety CSV nie obsługuje formuł takich jak SUM()itp.
Alexander Gladysh
Zaktualizowałem pytanie, aby powiedzieć to wprost.
Alexander Gladysh
1
@AlexanderGladysh, właściwie powiedziałbym, że CSV może dobrze poradzić sobie z równaniami, jeśli wybierzesz odpowiedni format, problem polega na tym, że musisz skonfigurować czytnik tak, aby analizował i oceniał te równania.
zzzzBov,
Tryb emacs csv może być dobrym narzędziem. Rozważam również Gnumerics do lekkiej edycji csv. Muszę jeszcze wypróbować je szeroko.
Brady Trainor
1

Wiem, że Microsoft Office 2007 i nowsze wersje domyślnie przyjmują format XML z propitiatory podczas zapisywania. To powinno być przyjazne dla Gita. Open Office zapisuje również do formatu xml, jeśli chcesz użyć bardziej otwartego oprogramowania. Ponieważ XML jest formatem tekstowym, git powinien być w stanie obsługiwać go dość dobrze

Ponieważ przenosisz go z Dokumentów Google, możesz je pobrać, ma otwarte dokumenty oparte na XML.

Edytować

Ponieważ zależy Ci na rozwiązaniu innym niż Microsoft / XML, które zawsze możesz zapisać, masz CSV w otwartym biurze, ale nie jestem pewien, ile utracisz funkcjonalności, zapisując w tym formacie.

Egryan
źródło
3
Widziałem pewne problemy z Gitem, który nie zgadzał się z formatami XML lub łączył je w sposób niezgodny z formatem dokumentu. Wierzę, że można to obejść za pomocą narzędzia scalającego specyficznego dla XML, ale nie widziałem tego w użyciu.
glenatron
4
Format skoroszytu programu Excel (* .xlsx) to zbiór plików XML w kontenerze ZIP. Możesz wybrać Arkusz kalkulacyjny XML 2003 (* .xml), aby zapisać w jednym pliku XML, ale obsługuje on tylko podzbiór funkcji programu Excel.
M. Dudley
1
XML nie zrobiłby tego, zgodnie z powyższym komentarzem @glenatron (ja też miałem takie problemy). Ponadto: różnice w formacie XML nie są w pełni czytelne dla człowieka przez IMO. Zaktualizowałem pytanie, aby to odzwierciedlić.
Alexander Gladysh
Cóż, CSV nie obsługuje żadnych formuł. Mogę wtedy po prostu użyć tabel Markdown. Zaktualizowałem pytanie, aby to odzwierciedlić.
Alexander Gladysh
0

To może nie być dokładnie to, co chcesz. Uważam, że libre office pozwala odwoływać się do pliku zewnętrznego. Możesz mieć arkusz kalkulacyjny, który traktujesz jak bazę danych i mieć statyczny plik libre, który byłby twoim interfejsem. Utraciłbyś łatwy dostęp do sumowania w wersjonowanych plikach, chyba że oddzwonisz, ale to zadziała.

Innym dość dużym problemem jest to, że jest to jeden kierunek.

Jpatrick
źródło