在emacs org-mode中获取表外的值

Yot*_*tam 7 emacs org-mode

假设我有一个由org-mode创建的表

| thing | value |
| t1    | 1     |
| t2    | 3     |
| t3    |  21   |
|-------+-------|
| total | 25    |
Run Code Online (Sandbox Code Playgroud)

在组织模式文档中是否有一种方法可以从表中的总值单元格中获取值?(除了手动复制值)

Jua*_*cho 8

以下帖子解决了您的同一问题: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}
Run Code Online (Sandbox Code Playgroud)

说明:您调用一个非常简单的elisp内联源块,它只打印变量d,该变量已分配给表中的元素.

如果您想要最后一行的第二列,可以尝试:

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

1获得第2项,以及(- (length tbl) 1)获取最后一行(注意,这最后一个例子不是纯粹的LISP,只是工作).

在这里,我们将完整的表格放入elisp(作为列表列表),并通过列表操作提取所需的项目.

请注意,实际结果将在导出期间替换.你不会在组织模式文本中神奇地看到它.