转换CSV为org模式



我试图使用John Kitchin在https://stackoverflow.com/a/27240183/11376268中提供的代码将我的CSV文件转换为org模式,但我得到以下错误消息:

Debugger entered--Lisp error: (void-function loop)
(loop for line in (cdr lines) do (setq values (split-string line ",")) (loop for property in properties for value in values do (org-entry-put (point) property value)))
(let ((lines (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert-file-contents "data.csv") (split-string (buffer-string) "n")) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (properties) (values)) (setq properties (split-string (car lines) ",")) (loop for line in (cdr lines) do (setq values (split-string line ",")) (loop for property in properties for value in values do (org-entry-put (point) property value))))
(progn (let ((lines (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert-file-contents "data.csv") (split-string (buffer-string) "n")) (and (buffer-name temp-buffer) ...))))) (properties) (values)) (setq properties (split-string (car lines) ",")) (loop for line in (cdr lines) do (setq values (split-string line ",")) (loop for property in properties for value in values do (org-entry-put (point) property value)))))
elisp--eval-last-sexp(nil)
eval-last-sexp(nil)
funcall-interactively(eval-last-sexp nil)
command-execute(eval-last-sexp)

我使用GNU Emacs 28.1 (build 2, x86_64-w64-mingw32)。

我做错了什么?

data.csv如下所示:

Name,Tel,Mobile,Fax
John,11111,22222,33333

我使用的代码:

(let ((lines (with-temp-buffer
(insert-file-contents "data.csv")
(split-string (buffer-string) "n")))
(properties)
(values))
(setq properties (split-string (car lines) ","))
(loop for line in (cdr lines)
do
(setq values (split-string line ","))
(loop for property in properties
for value in values
do
(org-entry-put (point) property value))))

按原样插入一个普通的csv文件,在缓冲区中标记该区域,并调用M-x org-table-convert-region RET

最新更新