Compare commits
2
Commits
3d0c20a5dd
...
03277714ba
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
03277714ba | ||
|
|
9c84a8153a |
+12
-2
@@ -25,13 +25,11 @@
|
|||||||
|
|
||||||
(defun pt-build (source &rest params)
|
(defun pt-build (source &rest params)
|
||||||
"Build a pivot table
|
"Build a pivot table
|
||||||
|
|
||||||
TODO: more documentation"
|
TODO: more documentation"
|
||||||
(let* ((rows (plist-get params :rows))
|
(let* ((rows (plist-get params :rows))
|
||||||
(cols (plist-get params :cols))
|
(cols (plist-get params :cols))
|
||||||
(vals (plist-get params :vals))
|
(vals (plist-get params :vals))
|
||||||
(col-index (pt-get-columns source))
|
(col-index (pt-get-columns source))
|
||||||
(index (pt-column-names source))
|
|
||||||
src-cols
|
src-cols
|
||||||
(src-body (pt-get-body source))
|
(src-body (pt-get-body source))
|
||||||
(buckets (make-hash-table)))
|
(buckets (make-hash-table)))
|
||||||
@@ -42,6 +40,18 @@ TODO: more documentation"
|
|||||||
(dolist (record src-body)
|
(dolist (record src-body)
|
||||||
(pt--process-record record source-cols buckets))))
|
(pt--process-record record source-cols buckets))))
|
||||||
|
|
||||||
|
(defun pt-get-columns (source)
|
||||||
|
"Extract the column names from a table"
|
||||||
|
(let (result)
|
||||||
|
(dolist (row source)
|
||||||
|
(unless (and (listp row) (eq "!" (car row)))
|
||||||
|
(let ((n 2))
|
||||||
|
(dolist (cell (cdr row))
|
||||||
|
(unless (eq cell "")
|
||||||
|
(setq result (((format "%s" cell) . n) . result)))
|
||||||
|
(setq n (1+ n))))))
|
||||||
|
result))
|
||||||
|
|
||||||
;; Local Variables:
|
;; Local Variables:
|
||||||
;; read-symbol-shorthands: (("pt-" . "pivot-table-"))
|
;; read-symbol-shorthands: (("pt-" . "pivot-table-"))
|
||||||
;; End:
|
;; End:
|
||||||
|
|||||||
Reference in New Issue
Block a user