Chế độ Org: Sử dụng công thức bảng bên ngoài bảng?


11

Tôi tự hỏi liệu có thể hiển thị kết quả tính toán được thực hiện trên dữ liệu bảng, bên ngoài bảng không.

Ví dụ: giả sử tôi có một bảng với một danh sách các tên. Có thể có văn bản đơn giản nói một cái gì đó như " This below list contains [ ] names." và có [ ]chứa kết quả của việc đếm bảng không?

Câu trả lời:


9

Bạn có thể sử dụng một khối mã babel nội tuyến và hàm lisp org-table-get-remote-Range để có quyền truy cập vào các phạm vi bảng như trong ví dụ sau (số 3 sau khối nguồn là những gì nó tạo ra khi Cc Cc được thực thi trên nó)

  #+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

Trong cài đặt Emacs của tôi, [: results raw] không hiển thị kết quả, [: giá trị kết quả raw] đã thành công. Tuy nhiên, mỗi khi tôi Cc Cc, hoặc Cc Cv Cb, kết quả tương tự lại được lặp lại. Tôi không biết tại sao và tôi không có giải pháp cho kết quả dư thừa.
RUserPassingBy

1
valuenên là cài đặt mặc định, nhưng làm cho nó rõ ràng chắc chắn là chính xác hơn. Liên quan đến việc lặp lại việc chèn kết quả với mỗi lần thực hiện tiếp theo C-c C-c, đây là một vấn đề cố hữu, vì kết quả không được bọc trong bất kỳ loại dấu nào có thể cho phép Org xác định giới hạn. Người ta sẽ phải nấu một số giải pháp bằng cách sử dụng các dấu trong văn bản không nhìn thấy được khi xuất. Tình hình hiện tại không tối ưu, tôi đồng ý.
dfeich

Cảm ơn bạn đã giải thích chính xác của bạn, tôi hiểu. Tôi sẽ ghi nhớ vấn đề cố hữu. Giải pháp trong dòng của bạn là tuyệt vời!
RUserPassingBy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.