emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Juan Pechiar <juan@pechiar.com>
To: emacs-orgmode@gnu.org
Subject: Re: Sorting table columns (*not* content)
Date: Mon, 1 Nov 2010 12:43:42 -0200	[thread overview]
Message-ID: <20101101144342.GA2450@soloJazz.com> (raw)
In-Reply-To: <iamg4v$ehg$1@dough.gmane.org>

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 |
> |-------+-------+-------|
> | ...   | ...   | ...   |
>
> ?

  parent reply	other threads:[~2010-11-01 14:43 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-01 13:42 Sorting table columns (*not* content) Gary
2010-11-01 13:52 ` Jeff Horn
2010-11-01 14:15   ` Gary
2010-11-01 15:09     ` Jeff Horn
2010-11-01 19:44     ` Carsten Dominik
2010-11-02 11:05       ` Gary
2010-11-01 19:02   ` Christian Moe
2010-11-01 19:27     ` brian powell
2010-11-01 14:43 ` Juan Pechiar [this message]
2010-11-01 15:33   ` Gary
2010-11-01 15:39   ` brian powell
2010-11-01 17:47 ` Dan Davison
2010-11-01 18:44   ` brian powell
2010-11-02 11:03   ` Gary

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101101144342.GA2450@soloJazz.com \
    --to=juan@pechiar.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).