[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orgmode] Sorting table columns (*not* content)
From: |
Juan Pechiar |
Subject: |
Re: [Orgmode] Sorting table columns (*not* content) |
Date: |
Mon, 1 Nov 2010 12:43:42 -0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
If you don't mind losing h-lines, you can transpose the table, sort
rows, and transpose back.
This code (which I previously posted to the list) transposes a table:
#+begin_src: emacs-lisp
(defun org-transpose-table-at-point ()
"Transpose orgmode table at point, eliminate hlines"
(interactive)
(let ((contents (apply #'mapcar* #'list
(remove-if-not 'listp ;; remove 'hline from list
(org-table-to-lisp)))) ;; signals
error if not table
)
(delete-region (org-table-begin) (org-table-end))
(insert (mapconcat (lambda(x) (concat "| " (mapconcat 'identity x " | " ) "
|\n" ))
contents
""))
(org-table-align)
)
)
#+end_src
Regards,
.j.
On Mon, Nov 01, 2010 at 02:42:55PM +0100, Gary wrote:
> Is there any way to sort the columns of a table, such that for example
>
> | Col 3 | Col 1 | Col 2 |
>
> can be converted to
>
> | Col 1 | Col 2 | Col 3 |
> |-------+-------+-------|
> | ... | ... | ... |
>
> ?