Nick Dokos writes: > francois@avalenn.eu writes: > >> This code does not work because of automatic conversion from string to >> number in org-babel-read-table. >> >> #+TBLNAME: table_test >> | name | id | >> |-------+-----| >> | name1 | 034 | >> | name2 | 135 | >> | name3 | 1B5 | >> >> #+NAME: code_test >> #+BEGIN_SRC emacs-lisp :var table=table_test >> (setq myv "") >> (dolist (line table myv) >> (unless (eq line 'hline) >> (setq myv (concat myv ";" (mapconcat 'identity line ","))))) >> myv >> >> #+END_SRC >> >> I would like to have this result : >> >> #+RESULTS: code_test >> : ;name,id;name1,034;name2,135;name3,1B5 >> >> Is there any possibility to deactivate this conversion as with >> inhibit-lisp-eval for lisp forms ? Or better is there any way to chose >> conversion parameters on a column to column basis ? >> > > Not that I know of. But you can redefine org-babel-read-table to omit > the conversion: > > --8<---------------cut here---------------start------------->8--- > (defun org-babel-read-table () > (org-table-to-lisp)) > --8<---------------cut here---------------end--------------->8--- > > and redefine it back afterwards: > > --8<---------------cut here---------------start------------->8--- > (defun org-babel-read-table () > "Read the table at `point' into emacs-lisp." > (mapcar (lambda (row) > (if (and (symbolp row) (equal row 'hline)) row > (mapcar (lambda (el) (org-babel-read el 'inhibit-lisp-eval)) row))) > (org-table-to-lisp))) > --8<---------------cut here---------------end--------------->8--- > > Disgusting, no? Disgusting and fantastic. How about taking it one step further...