我有一个带有表格的结构化组织文档,每个月一个。每个表都进行相同的计算,因此,#+ TBLFM行在所有表中都是相同的。
有没有办法强制所有表共享相同的#+ TBLFM行?
提前致谢
答案 0 :(得分:0)
我很确定答案是"没有"。
答案 1 :(得分:0)
如果公式是使用emacs lisp定义的,则可以共享。定义一个emacs lisp函数来处理计算,然后在每个表中引用该emacs lisp函数。在#+TBLFM
中使用lisp表达式前的引号'
来完成此操作。
例如,
#+NAME: table1
| Col1 | Col2 |
|------+---------------|
| | do stuff here |
| | |
|------+---------------|
#+TBLFM: @2$2='(my-shared-function)
#+NAME: table2
| Col1 | Col2 |
|---------------+------|
| | |
| do stuff here | |
|---------------+------|
#+TBLFM: @3$1='(my-shared-function)
#+begin_src emacs-lisp
(defun my-shared-function ()
"Function to be shared between tables."
(interactive)
"do stuff here")
#+end_src
在该示例中,有一个名为my-shared-function
的emacs lisp函数,该函数返回字符串"do stuff here"
(由于是最后计算的表达式的返回值)。每个表都会调用该函数,从而将字符串放置在所指示的单元格中(请记住,@
是行,$
是列)。
您可以在手册中阅读有关使用emacs lisp作为公式的更多信息:
https://orgmode.org/worg/org-tutorials/org-spreadsheet-lisp-formulas.html