Org Mode: Використовуючи формулу таблиці поза таблицею?


11

Мені цікаво, чи можна відображати результат обчислень, проведених на даних таблиці, поза таблицею.

Наприклад, припустимо, у мене є таблиця зі списком імен. Чи можливо мати звичайний текст, який говорить щось на зразок " This below list contains [ ] names." і [ ]містить результат підрахунку таблиці?

Відповіді:


9

Ви можете використовувати вбудований блок коду бабеля та функцію lisp org-table-get-remote-range, щоб отримати доступ до діапазонів таблиць, як у наступному прикладі (число 3 після вихідного блоку - це те, що він створюється при виконанні Cc Cc це)

  #+TBLNAME: table1
  | Name    | Points |
  |---------+--------|
  | Andreas |      5 |
  | Barbara |      8 |
  | Carl    |      7 |
  |---------+--------|
  | Total   |     20 |
  #+TBLFM: @5$2=vsum(@I..@II)

  Now I insert in the text the number of names in the above table: 
  src_emacs-lisp[:results raw]{(length (org-table-get-remote-range "table1" "@I$1..@II$1" ))} 3

У моїх налаштуваннях Emacs [: raw raw] не відображає результатів, [: value value raw] вдалося. Однак кожен раз, коли I Cc Cc або Cc Cv Cb, надлишковий результат повторюється. Я не знаю, чому і не маю рішення для надмірних результатів.
RUserPassingBy

1
valueмає бути налаштуванням за замовчуванням, але, якщо зробити це явним, звичайно, більш правильним. Що стосується повторення вставки результатів з кожним наступним виконанням C-c C-c, це притаманна проблема, оскільки результат не зафіксований жодними маркерами, які дозволяли б Оргу визначити межі. Потрібно було б підготувати якесь рішення, використовуючи текстові маркери, невидимі для експорту. Поточна ситуація не є оптимальною, я згоден.
dfeich

Дякую за точне пояснення, я розумію. Я буду мати на увазі притаманну проблему. Інтерактивний блок вашого рішення чудовий!
RUserPassingБерезень
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.