This is a quick hack on org-table-transpose-table-at-point to print out a property list instead of a table. #+begin_src elisp (defun vikas-convert () "table to props" (interactive) (let ((contents (apply #'mapcar* #'list ;; remove 'hline from list (delq nil (mapcar (lambda (x) (when (listp x) x)) (org-table-to-lisp)))))) (delete-region (org-table-begin) (org-table-end)) (insert " :PROPERTIES:\n") (insert (mapconcat (lambda(x) (concat " :" (first x) ": " (second x) "\n" )) contents "")) (insert " :END:\n\n"))) #+end_src This transforms: | PROP1 | PROP2 | PROP3 | | 1 | 2 | 3 | into :PROPERTIES: :PROP1: 1 :PROP2: 2 :PROP3: 3 :END: Your code worked flawlessly. Thank you. Vikas