org: Capturing column view
7.5.3 Capturing column view
---------------------------
Since column view is just an overlay over a buffer, it cannot be
exported or printed directly. If you want to capture a column view, use
a ‘columnview’ dynamic block (Dynamic blocks). The frame of
this block looks like this:
* The column view
#+BEGIN: columnview :hlines 1 :id "label"
#+END:
This dynamic block has the following parameters:
‘:id’
This is the most important parameter. Column view is a feature
that is often localized to a certain (sub)tree, and the capture
block might be at a different location in the file. To identify
the tree whose view to capture, you can use 4 values:
local use the tree in which the capture block is located
global make a global view, including all headings in the file
"file:PATH-TO-FILE"
run column view at the top of this file
"ID" call column view in the tree that has an ‘:ID:’
property with the value label. You can use
‘M-x org-id-copy RET’ to create a globally unique ID for
the current entry and copy it to the kill-ring.
‘:hlines’
When ‘t’, insert an hline after every line. When a number N,
insert an hline before each headline with level ‘<= N’.
‘:vlines’
When set to ‘t’, force column groups to get vertical lines.
‘:maxlevel’
When set to a number, don’t capture entries below this level.
‘:skip-empty-rows’
When set to ‘t’, skip rows where the only non-empty specifier of
the column view is ‘ITEM’.
The following commands insert or update the dynamic block:
‘C-c C-x i (org-insert-columns-dblock)’
Insert a dynamic block capturing a column view. You will be
prompted for the scope or ID of the view.
‘C-c C-c or C-c C-x C-u (org-dblock-update)’
Update dynamic block at point. The cursor needs to be in the
‘#+BEGIN’ line of the dynamic block.
‘C-u C-c C-x C-u (org-update-all-dblocks)’
Update all dynamic blocks (Dynamic blocks). This is useful
if you have several clock table blocks, column-capturing blocks or
other dynamic blocks in a buffer.
You can add formulas to the column view table and you may add
plotting instructions in front of the table—these will survive an update
of the block. If there is a ‘#+TBLFM:’ after the table, the table will
actually be recalculated automatically after an update.
An alternative way to capture and process property values into a
table is provided by Eric Schulte’s ‘org-collector.el’ which is a
contributed package(1). It provides a general API to collect properties
from entries in a certain scope, and arbitrary Lisp expressions to
process these values before inserting them into a table or a dynamic
block.
---------- Footnotes ----------
(1) Contributed packages are not part of Emacs, but are distributed
with the main distribution of Org (visit <http://orgmode.org>).