Bir org dosyasındaki belirli bir tabloyu komut satırından csv'ye aktarabilir miyim?


19

Birden çok tablo içeren bir kuruluş dosyam var

$ 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 |

Bu dosya düzenli olarak güncellenmektedir. Ben ayrıştırır bir perl script var csvveren elde edilen dosyayı M-x org-table-exportüzerinde first-table. first-tableKomut satırından csv'ye dışa aktarabilmek istiyorum, bu yüzden bunu her seferinde manuel olarak yapmak zorunda değilim. Mümkün mü?


1
Tablonun içeriğini bir Org dosyasında elde etmek için bunu yapabilirsiniz (org-babel-ref-resolve "first-table")- bu tabloyu bir liste olarak verir ve ardından orgtbl-to-csvbu listeyi çağırır . orgtbl-to-csvEk argümanlar için belgelerine bakın . Daha sonra, işlevinizi --evalveya -fseçenekleri kullanarak işlevinizi yürütmek için Emacs'ı toplu modda çalıştırabilirsiniz .
wvxvw

Yanıtlar:


24

Tabloyu arayabilir ve org-table-exportdışa aktarmak için kullanabilirsiniz . İşlevi bir dosyaya koyabilir, yükleyebilir ve toplu dışa aktarabilirsiniz. Böyle bir şey belki:

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")))))

Daha sonra örnek dosyanızla, aşağıdaki gibi toplu dışa aktarma yapabilirsiniz:

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

Tablo arayışım biraz kaba ama işe yarıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.