Хорошо, вот решение, которое включает Excel или любую другую программу для работы с электронными таблицами, которая может экспортировать CVS.
Вы должны установить недавно выпущенный сторонний фильтр с именем "csv2table" (<- GitHub repository) для Pandoc.
Он также доступен в качестве отдельного фильтра .
Установите автономный фильтр следующим образом:
mkdir $/bin wget https://gist.githubusercontent.com/baig/b69e3146251bd90d12e7/raw/d8c8171fbe0ad5543f8aaf0a134250b29c689e57/csv2table.hs \ -O $/bin/pandoc-csv2table.hs chmod a+x $/bin/pandoc-csv2table.hs export PATH=$/bin:$
Мой предпочтительный метод установки, однако, с помощью
cabal
:cabal update export PATH=$/.cabal/bin:$ cabal install cabal-install cabal install pandoc-csv2table
Прочитайте документацию по csv2table .
Что вы можете сделать с этим фильтром?
Вы можете включить внешний файл CSV в ваш Markdown ...
... либо злоупотребляя изображением, включая синтаксис, например так:
![](/path/to/file.csv)
... или злоупотребляя синтаксисом блока изолированного кода следующим образом:
```` {.table source="/path/to/file.csv" <list-of-attributes>} ````
... или напрямую вставляя строки CSV в «секцию огражденной таблицы» следующим образом:
```` {.table <list-of-attributes>} one,two,three 1,2,3 100,2000,55555 ````
Вызов фильтра в командной строке Pandoc как
--filter=pandoc-csv2table
CSV будет преобразован в таблицу во всех ваших форматах вывода.Кроме того, вы можете применить практически все форматирование к таблицам, которые поддерживаются Pandoc:
- Используйте атрибут
type="multiline"
для созданияmultiline_table
. - Используйте
type="pipe"
для созданияpipe_table
. - Используйте
type="simple"
для созданияsimple_table
. - Используйте
caption="My ***important*** caption for this table"
для добавления заголовка таблицы. (Это может включать форматирование уценки.) - Используйте,
header="no"
если вы хотите таблицу без заголовков столбцов (по умолчанию используется значение, если оно не заданоheader="yes"
). - Теперь нужная вам функция: используйте,
aligns=LRCDR
чтобы упорядочить выравнивание столбцов (слева направо) как слева, справа, по центру, по умолчанию и справа снова.
- Используйте атрибут
пример
Рассмотрим этот
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)
(Как видите, я даже использую разметку Markdown для некоторых полей данных линий CSV!)
Рассмотрим Markdown,
my.md
:# Заголовок `` `` {.table source = "./ my.csv" aligns = "LRCR" type = "multiline" caption = "Some *** caption ***"} `` `` `
Запустите эту команду, чтобы сгенерировать вывод многострочной таблицы Markdown из вашего CSV-входа:
pandoc my.md --filter = pandoc-csv2table -t уценка
Смотрите этот вывод:
Запустите эту команду, чтобы сгенерировать вывод PDF с многострочной таблицей из вашего CSV-ввода:
pandoc my.md --filter = pandoc-csv2table -o my.pdf
Смотрите этот вывод (скриншот):
Если вы хотите сгенерировать "таблицы каналов" с синтаксисом двоеточия, указывающим на выравнивание, вам нужно немного изменить Markdown, а также командную строку:
Измените Markdown, чтобы включить
type="pipe"
в параметры форматирования таблицы:# Заголовок `` `` {.table source = "./ my.csv" aligns = "LRCR" type = "pipe" caption = "Некоторые *** caption ***"} `` `` `
Измените командную строку, чтобы запросить
markdown_phpextra+table_captions
вывод:pandoc my.md --filter = pandoc-csv2table -t markdown_phpextra + table_captions
Смотрите вывод сейчас:
Конечно, это работает и со всеми другими форматами вывода!