Posso esportare una tabella specifica in un file org in CSV dalla riga di comando?


19

Ho un file org con più tabelle

$ cat ~/foo.org
#+Title: hello world

* section 1

lorem ipsum

#+TBLNAME: first-table
| i      | want | to    |
| export | this | table |

#+TBLNAME: second-table
| this | table | is        |
| not  | as    | important |

Questo file viene aggiornato regolarmente. Ho uno script perl che analizza il csvfile ottenuto di rilasciare M-x org-table-exportsu first-table. Vorrei poter esportare first-tablein CSV dalla riga di comando, quindi non devo farlo manualmente ogni volta. È possibile?


1
Al fine di ottenere il contenuto della tabella in un file Org, è possibile eseguire (org-babel-ref-resolve "first-table")questa operazione : ciò fornirà la tabella come elenco, quindi richiamare orgtbl-to-csvtale elenco. Vedere la documentazione di orgtbl-to-csvper ulteriori argomenti. È quindi possibile eseguire Emacs in modalità batch per eseguire la funzione utilizzando --evalo le -fopzioni.
wvxvw,

Risposte:


24

Puoi cercare la tabella e utilizzarla org-table-exportper esportarla. È possibile inserire la funzione in un file, caricarlo ed esportare in batch. Qualcosa del genere forse:

setup.el:

(require 'org)

(defun my-tbl-export (name)
  "Search for table named `NAME` and export."
  (interactive "s")
  (show-all)
  (let ((case-fold-search t))
    (if (search-forward-regexp (concat "#\\+NAME: +" name) nil t)
    (progn
      (next-line)
      (org-table-export (format "%s.csv" name) "orgtbl-to-csv")))))

Quindi con il tuo file di esempio, puoi esportare in batch in questo modo:

$ emacs --batch foo.org -l setup.el --eval '(my-tbl-export "first-table")'

La mia ricerca per il tavolo è un po 'rozza, ma funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.