在Emacs Org-mode中获取表格之外的值

8
假设我有一个由 org-mode 创建的表格。
| thing | value |
| t1    | 1     |
| t2    | 3     |
| t3    |  21   |
|-------+-------|
| total | 25    |

在org mode文档中,除了手动复制数值之外,是否有一种方法可以从表格的总计单元格中获取数值?

1个回答

9
以下文章回答了您的问题:http://permalink.gmane.org/gmane.emacs.orgmode/28056 您应该先为表命名,然后通过内联src调用引用它。
#+TBLNAME: test-table
| thing | value |
|-------+-------|
| t1    | 1     |
| t2    | 3     |
| t3    |  21   |
|-------+-------|
| total | 25    |

The result I wanted is src_emacs-lisp[:var d=test-table[6,1]]{d}

解释:您调用了一个非常微不足道的elisp内联源代码块,它只打印了变量d,该变量被分配给表中的一个元素。

如果您想获取最后一行的第二列,则可以尝试以下方法:

The result I wanted is src_emacs-lisp[:var tbl=test-table]{(nth 1 (nth (- (length tbl) 1) tbl))}

这里的1表示获取第二项,而(- (length tbl) 1)表示获取最后一行(注意,这个例子不是纯粹的LISP,但可以工作)。

在这里,我们将完整的表格作为列表的形式储存在elisp中,并通过列表操作提取所需的项目。

请注意,实际结果将在导出期间被替换。您在org-mode文本中看不到它的神奇效果。


将此导出到我的系统上的ASCII会得到正确的结果,但带有令人讨厌的引号:'25'。有什么办法可以去掉这些引号吗? - Brian Fitzpatrick
1
:var指令中添加:results raw选项以去除引号。 - Juancho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接