Formato de planilha compatível com Git? [fechadas]


35

Estamos tentando mover nosso processo de documentação do projeto do Google Documents para um conjunto de repositórios Git auto-hospedados.

Os documentos de texto são compatíveis com o Git, já que geralmente não precisamos de nenhuma formatação sofisticada, apenas converteremos tudo em, por exemplo, multimarkdown com a opção de incorporar o LaTeX para casos complexos.

Mas as planilhas são uma história bem diferente ... Existe um formato de planilha (amigável) que seja amigável aos sistemas de controle de versão (e, de preferência, seja tão legível quanto o Markdown)?

"Formato amigável": o Git funciona bem com o formato (não funciona com XML) e gera diffs legíveis por humanos ( configuração extra envolvendo ferramentas externas é aceitável).

Obviamente, os sabores do Markdown permitem criar tabelas estáticas, mas eu gostaria de poder usar coisas como SUM()etc ... (Observe que o CSV tem o mesmo problema.) Nenhum WYSIWYG é bom, mas o suporte decente de editor / ferramenta seria legais.

Atualização: apenas respostas compatíveis com Linux, por favor. Nada de MS Office.


2
Exatamente o que você quer dizer com "amigo do git"? Eu não usei muito o git, mas ele lida com arquivos binários muito bem e eles podem ser versionados e marcados como qualquer arquivo de texto. Eles simplesmente não podem ser diferentes, mas isso pode não ser necessário.
Thomas Owens

Amigável: eu posso ver o diff e descobrir facilmente o que foi alterado. Atualizada a pergunta para refletir isso. BTW, AFAIR, git, quando configurado corretamente, pode mostrar diferenças para alguns formatos binários (com a ajuda de ferramentas externas, é claro).
Alexander Gladysh

Não acredito que ninguém lhe perguntou isso, mas por que você precisa armazenar planilhas no repositório do projeto? para que servem as planilhas? geralmente eles são bastante complexo que você precisa deles em um local diferente e eles são geralmente usados por pessoas de negócios ...
Rudolf Olah

2
Esta pergunta parece estar fora do tópico porque não está relacionada à programação.

Uma alternativa para tentar encontrar ou criar um novo formato adequado para diferenças regulares é encontrar ou criar uma ferramenta para diferenciar planilhas regulares e produzir saída de texto. É isso que o software ExcelCompare de código aberto faz, para Excel, OpenDocument etc. E essa maneira de visualizar a pergunta é adequada para um site de perguntas e respostas sobre desenvolvimento de software :) Consulte o controle de versão - Como difiro duas planilhas? - Stack Overflow e do próprio software está em na-ka-na / ExcelCompare
nealmcb

Respostas:


12

Você também pode usar o libreOffice / planilha de escritório aberto sem zip-xml-formato de arquivo "* .fods", que é um xml simples. O comentário de @glenatron também se aplica a este formato.

O formato padrão da planilha de escritório aberto "* .ods" é zipado em xml e não é adequado para o git (semelhante à resposta @ Egryan / @ emuddudley).


Eu gostaria de evitar XML. Atualizada a pergunta para refletir isso.
Alexander Gladysh

2
1. O LibreOffice realmente funciona no Linux. 2. Não, XML não é besteira do MS . No entanto, XML e Git não funcionam bem juntos (consulte o comentário de @ glenatron acima).
Alexander Gladysh 4/13/13

3
@ LazyBadger: DiffDog: sem suporte para Linux, código fechado, 500 $ / usuário. Desculpe, mas eu vou passar.
Alexander Gladysh

2
@AlexanderGladysh - Meld, xmldiff ou Como posso diferenciar dois arquivos XML? tópico no SU
Lazy Badger

11
@ LazyBadger: Observe que a mesclagem em três direções é mais importante do que a diferença. (Mas o Google encontra várias ferramentas de mesclagem de 3 vias de linha de comando Linux adequadas para XML.) Vou tentar isso nas planilhas do LibreOffice, obrigado.
Alexander Gladysh

7

Isso pode não atender às suas necessidades, mas pode atender às de outras pessoas. O modo Org para o Emacs inclui table.el, o qual, junto com as melhorias específicas do modo Org, fornece uma solução extremamente robusta para planilhas, tudo em texto simples. Mais informações (muito mais do que o escopo deste site) estão disponíveis no site e manual do Org-mode , particularmente no tutorial de planilha .

insira a descrição da imagem aqui


4

E quanto à dispersão ? É poderoso e vem com uma boa interface gráfica.

De acordo com a página Primeiros Passos :

O formato do arquivo pys foi alterado na versão 0.2.0. Agora é um arquivo de texto bzip2-ed com a seguinte estrutura:

[Versão do arquivo salvo salva]

0,1

[forma]

1000 100 3

[grade]

7 22 0 'Testcode1'

8 9 0 'Código de teste2'

[atributos]

[] [] [] [] [(0, 0)] 0 'fonte de texto' u'URW Chancery L '

[] [] [] [] [(0, 0)] 0 'tamanho do ponto' 20

[row_heights]

0 0 56,0

7 0 25,0

[col_widths]

0 0 80,0

[macros]

Texto de macro

O fato de ser bzip2-ed não ajuda, mas pelo menos você pode acessar um texto bastante legível.

A licença é GPLv3.


4

CSV (valores separados por vírgula)

Se você está apenas trabalhando com dados, é provavelmente o formato mais simples e com mais suporte.

Deve facilitar a vida se você quiser diferenciar entre versões.

Ah, e o Google Docs suporta totalmente a importação / exportação de CSV.

Atualizar:

Em seguida, basta escrever um script do Google Apps para especificar as fórmulas na exportação e fazer o inverso na importação. Você precisará usar um pouco de criatividade, porque o formato que você está procurando não existe.


2
Infelizmente, o CSV não suporta coisas de fórmula como SUM()etc. #
Alexander Gladysh

Eu atualizei a pergunta para dizer isso explicitamente.
Alexander Gladysh

11
@AlexanderGladysh, na verdade, eu diria que o CSV pode lidar com equações muito bem se você escolher o formato certo, o problema é que você precisará configurar um leitor para analisar e avaliar essas equações.
zzzzBov

O modo csv do Emacs pode ser uma boa ferramenta. Também considero o Gnumerics para edição csv leve. Ainda precisa tentar isso extensivamente.
Brady Trainor

1

Eu sei que o Microsoft Office 2007 e superior padrão para um formato xml propiciatório quando eles salvam. Então isso deve ser amigável para o Git. O escritório aberto também salva em um formato xml se você deseja usar uma solução mais open source. Como um XML é um formato de texto, o git deve ser capaz de lidar com isso bastante bem

Como você o move do Google Documents, você pode baixá-los com documentos abertos, baseados em xml.

Editar

Como você deseja uma solução que não seja da Microsoft / XML, você sempre pode salvar um CSV no escritório, embora não tenha certeza da quantidade de funcionalidades que você perde ao salvar nesse formato.


3
Vi alguns problemas com o Git discordando dos formatos XML ou mesclando-os de maneiras que não são compatíveis com o formato do documento. Acredito que isso possa ser resolvido usando uma ferramenta de mesclagem específica para XML, mas ainda não vi isso em uso.
glenatron

4
O formato de pasta de trabalho do Excel (* .xlsx) é uma coleção de arquivos XML em um contêiner ZIP. Você pode escolher XML Spreadsheet 2003 (* .xml) para salvar em um único arquivo XML, mas ele suporta apenas um subconjunto de recursos do Excel.
M. Dudley

11
O XML não funcionaria, conforme o comentário do @glenatron acima (eu também tive esses problemas). Além disso: as diferenças de XML não são IMO legíveis por humanos. Atualizada a pergunta para refletir isso.
Alexander Gladysh

Bem, o CSV não suporta nenhum material de fórmula. Eu posso apenas usar as tabelas de Markdown então. Atualizada a pergunta para refletir isso.
Alexander Gladysh

0

Isso pode não ser exatamente o que você deseja. Acredito que o libre office permite que você faça referência a arquivos externos. Você poderia ter uma planilha que tratasse como um banco de dados e um arquivo libre estático que seria sua interface. Você perderia a soma do acesso fácil nos arquivos com versão, a menos que os chamasse de volta, mas funcionaria.

Outro grande problema com isso seria o fato de ser uma direcional.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.