Previous: Using column view, Up: Column view [Contents][Index]

#### 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 (see 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 (see 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 package66. 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

### (66)

Contributed packages are not part of Emacs, but are distributed with the main distribution of Org (visit http://orgmode.org).

Previous: Using column view, Up: Column view [Contents][Index]