Ok, aqui está uma solução que envolve o Excel ou qualquer outro programa de planilha que seja capaz de exportar o CVS.
Você precisa instalar um filtro de terceiros recém-lançado chamado "csv2table" ( < - repositório GitHub) para o Pandoc.
Ele também está disponível como um filtro independente .
-
Instale o filtro autônomo assim:
mkdir ${HOME}/bin wget https://gist.githubusercontent.com/baig/b69e3146251bd90d12e7/raw/d8c8171fbe0ad5543f8aaf0a134250b29c689e57/csv2table.hs \ -O ${HOME}/bin/pandoc-csv2table.hs chmod a+x ${HOME}/bin/pandoc-csv2table.hs export PATH=${HOME}/bin:${PATH}
-
Meu método de instalação preferido, no entanto, é via
cabal
:cabal update export PATH=${HOME}/.cabal/bin:${PATH} cabal install cabal-install cabal install pandoc-csv2table
Leia a documentação do csv2table .
O que você pode fazer com esse filtro?
-
Você pode incluir um arquivo CSV externo no seu Markdown por ...
-
... abusando da imagem incluindo a sintaxe desta forma:
![](/path/to/file.csv)
-
... ou abusando da sintaxe código de bloco bloqueado :
'''' {.table source="/path/to/file.csv" <list-of-attributes>} ''''
-
... ou inserindo diretamente suas linhas CSV na "seção da tabela protegida" da seguinte forma:
'''' {.table <list-of-attributes>} one,two,three 1,2,3 100,2000,55555 ''''
-
-
Invocando o filtro na linha de comando do Pandoc como
--filter=pandoc-csv2table
o CSV será convertido em uma tabela em todos os seus formatos de saída. -
Além disso, você pode aplicar quase toda a formatação à (s) tabela (s) suportada (s) pelo Pandoc:
- Use o atributo
type="multiline"
para criar ummultiline_table
. - Use
type="pipe"
para criar umpipe_table
. - Use
type="simple"
para criar umsimple_table
. - Use
caption="My ***important*** caption for this table"
para adicionar uma legenda de tabela. (Isso pode incluir formatação de marcação). - Use
header="no"
se você quiser uma tabela sem cabeçalhos de coluna (o valor padrão usado, se não for fornecido, éheader="yes"
). -
Agora o recurso que você quer: Use
aligns=LRCDR
para ordenar o alinhamento das colunas (da esquerda para a direita) como Esquerda, Direita, Centro, Padrão e Direita novamente.
- Use o atributo
Exemplo
-
Considere este arquivo
my.csv
:Time,"*Cash* Flow","Third column" 0,-500,loooooooooooong data field with many words 1,*100*, ***2***,'2000',shorte **3**,30000,(second line is empty)
(Como você pode ver, eu até uso Markup markup para alguns dos campos de dados das linhas CSV!)
-
Considere este Markdown,
my.md
:# Headline '''' {.table source="./my.csv" aligns="LRCR" type="multiline" caption="Some ***caption***"} ''''
-
Execute este comando para gerar a saída da tabela de múltiplas linhas do Markdown a partir de sua entrada CSV:
pandoc my.md --filter=pandoc-csv2table -t markdown
Veja esta saída:
ExecuteestecomandoparagerarumasaídaemPDFcomumatabelademúltiplaslinhasapartirdasuaentradaemCSV:
pandocmy.md--filter=pandoc-csv2table-omy.pdf
Vejaestasaída(capturadetela):
-
Se você quiser gerar "tabelas de tubulação" com a sintaxe de dois pontos de alinhamento, você terá que modificar o Markdown um pouco, assim como a linha de comando:
-
Modifique o Markdown para incluir
type="pipe"
nas opções de formatação da tabela:# Headline '''' {.table source="./my.csv" aligns="LRCR" type="pipe" caption="Some ***caption***"} ''''
-
Modifique a linha de comando para solicitar
markdown_phpextra+table_captions
output:pandoc my.md --filter=pandoc-csv2table -t markdown_phpextra+table_captions
Veja a saída agora:
-
-
Claro, isso funciona com todos os outros formatos de saída também!