A native table system for Emacs! Supports rich text, formula calculation, and plugin extensions ๐ฅ
Appearance | Data Calculation | Extensibility |
---|---|---|
Rich Text Rendering Cell Images Adaptive Column Widths Unicode Borders |
Formula Engine (Excel Style) ๐ Cell References Real-time Calculation Elisp Expressions |
Plugin Architecture ๐ Multiple Data Sources Format Export ๐ง Custom Extensions |
- Markdown Style Markup - Write resume summaries in cells
- Image Visualization - Display images directly in tables!
- Excel-Level Formulas -
=B2*C2ยท =SUM(A1:A10)ยท =IF(...)
- Elisp Super Formulas - Powerful
=elisp:(cell"A1")
expressions - Real-time Preview - "Static Preview + Dynamic Editing" in Org/Markdown
;; ๐ One-stop configuration - Recommended!
(use-package grid-table
:load-path ("/path/to/grid-table" "/path/to/grid-table/plugins")
:config
(require 'grid-table)
(require 'grid-table-plugins)
;; ๐ Custom save directory
(setq grid-table-default-save-directory "~/Documents/่กจๆ ผ/")
;; ๐ผ๏ธ Image display optimization
(setq grid-table-image-target-char-height 8)
(setq grid-table-image-max-width-ratio 0.9))
;; ๐ Manual configuration path
(add-to-list 'load-path "/path/to/grid-table")
(add-to-list 'load-path "/path/to/grid-table/plugins")
;; ๐ฏ Load on demand
(require 'grid-table) ;; Core functionality
(require 'grid-table-plugins) ;; Plugin system
(require 'grid-table-csv) ;; CSV support
(require 'grid-table-org) ;; Org integration
(require 'grid-table-markdown) ;; Markdown integration
๐ฏ Action | ๐ Command | ๐ Shortcut | โก Tip |
---|---|---|---|
New | M-x grid-table-create |
- | Create a blank table |
Open | M-x grid-table-find-file |
C-c C-f |
Open .grid file |
Save | - | C-c C-w |
Smart path suggestion |
CSV | M-x grid-table-find-file-csv |
- | Directly read CSV |
๐ฏ Action | ๐ค Shortcut | ๐ Effect | |
---|---|---|---|
โ๏ธ Basic Editing | |||
Cell Editing | e or right-click |
Enter edit mode | Cell focus |
Title Editing | C-c t |
Modify table title | Global display |
โ Row Operations | |||
Insert Row Below | C-c r a |
Create new row below current row | Smart format inheritance |
Delete Current Row | C-c r d |
Delete entire row | |
โ Column Operations | |||
Insert Column to Right | C-c c a |
Create new blank column | Auto-adjust width |
Delete Current Column | C-c c d |
Delete entire column | Clear data |
๐ฏ Direction | โจ๏ธ Key | ๐ฑ๏ธ Operation |
---|---|---|
โฌ๏ธ Up | p or โ |
Previous row |
โฌ๏ธ Down | n or โ |
Next row |
โฌ ๏ธ Left | S-TAB or โ |
Left cell |
โก๏ธ Right | TAB or โ |
Right cell |
๐ Refresh | g |
Re-render |
๐ฏ Tip: Use n
/p
for vertical movement, TAB
for horizontal movement
๐ฏ Type | ๐ Syntax | ๐ Example | ๐ก Description |
---|---|---|---|
๐ Cell | =A1 ใ=B2 |
=B2*C2 |
Relative reference |
๐ Range | =RANGE(A1:B5) |
=SUM(A1:A10) |
Continuous block |
โจ Function | =FUNCTION(args) |
=AVERAGE(B2:B10) |
Built-in function set |
๐ Math Functions | ๐ Statistical Functions | ๐ฏ Conditional Functions | ๐จ Text Functions |
---|---|---|---|
SUM Sum |
AVERAGE Average |
IF Conditional |
CONCAT Concatenate |
PRODUCT Product |
COUNT Count |
AND/OR Logical |
LEFT/RIGHT Slice |
MOD Modulus |
MAX/MIN Extremes |
NOT Invert |
LEN Length |
=elisp:(+ 1 2 3) ; ๐ฏ Basic calculation
=elisp:(+ (cell "A1") (cell "B2")) ; ๐ Cell reference
=elisp:(format "%.2f%%" (* 100 (cell "ๅฎๆ็"))) ; ๐จ Formatted string
=elisp:(let ((x (cell "B2"))) (* x x)) ; ๐ง Complex logic
This feature is turned off by default. For more detailed guidance, please refer to ELISP_FORMULA_GUIDE.md.
โ ๏ธ Security Warning:=elisp:
executes arbitrary Elisp code! Only use in fully trusted documents
๐ Suggestion: Verify external files are safe and reliable throughM-x checkdoc
#+BEGIN: grid-table
#+OPTIONS: :file "~/project/data.grid"
here display table preview (static preview)
#+END:
three steps:
M-x grid-table-org-insert-block
- insert grid-table block (static preview)M-x grid-table-org-refresh-block
- refresh grid-table block (dynamic preview)M-x grid-table-org-open-block
- open grid-table block (edit mode)
```grid-table
:file ~/project/data.grid
here display table preview (static preview)
๐ฏ scenario | ๐ command | ๐ค result |
---|---|---|
from grid export | M-x grid-table-export-as-rst |
๐ standard RST format |
insert existing grid file | M-x grid-table-rst-insert-table-from-file |
๐ smart path recognition |
็จๆท็้ข โโ grid-table.el โโ ๆ ธๅฟๅผๆ
โ โ
data-source API โ grid-data-model
โ โ
CSVๆไปถ โโ Orgๆไปถ โโ ่ชๅฎไนๆฐๆฎๆบ
๐ค interface type | ๐ key | ๐ return value type | ๐ก key purpose |
---|---|---|---|
data acquisition | |||
raw value | :get-raw-value-at |
String | value before formula |
computed value | :get-computed-value-at |
Any | formula calculation result |
structure management | |||
dimension query | :get-row-count |
Integer | import data statistics |
new unit | :add-row / :add-column |
Boolean | success/failure |
extension interface | |||
load interface | :load-from-file |
Object | custom file support |
save interface | :save-to-file |
Boolean | format export logic |
grid-table/ # project root directory
โโโ grid-table.el # main entry + UI rendering
โโโ grid-data-model.el # data model core
โโโ grid-data-source.el # data source abstraction
โโโ grid-table-api.el # public API
โโโ grid-table-calc.el # formula calculation engine
โโโ grid-table-nav.el # navigation control logic
โโโ grid-table-parser.el # text parsing tool
โโโ grid-table-persistence.el # persistence support
โโโ plugins/ # plugin extension system
โ โโโ grid-table-csv.el # CSV format support
โ โโโ grid-table-org.el # Org mode integration
โ โโโ grid-table-markdown.el # Markdown integration
โ โโโ grid-table-rst.el # reStructuredText export
โ โโโ grid-table-example-plugin.el # plugin development example
โโโ docs/ # technical documentation
โ โโโ ELISP_FORMULA_GUIDE.md # formula development guide
โ โโโ PLUGIN_DEVELOPMENT.md # plugin development manual
โโโ pictures/ # product screenshots and demonstrations
๐ฏ type | ๐ function description | ๐ฏ applicable scenario |
---|---|---|
๐จ cell renderer | custom cell display appearance | progress bar, currency format, etc. |
๐ data source plugin | support new file formats | JSON, Excel reading |
โก function plugin | add new function commands | data export, chart generation |
;;; my-plugin.el --- quick template -*- lexical-binding: t -*-
(require 'grid-table-plugins)
;; simple currency formatter
(defun my-currency-renderer (value &optional cell-props)
"Currency formatter, convert number to ยฅXX.XX format"
(if (and value (stringp value))
(let ((num (string-to-number value)))
(format "ยฅ%.2f" num))
""))
;; register renderer (done!)
(defun my-plugin-init ()
(grid-table-register-cell-renderer 'currency #'my-currency-renderer)
(grid-table-register-plugin 'my-plugin))
(my-plugin-init)
(provide 'my-plugin)
๐ complete development guideโ plugin development manual (fromๅ ฅ้จ to expert level)
- ๐ง bug report โ GitHub Issues
- โจ feature suggestion โ discussion forum
- ๐ง plugin contribution โ plugin development manual
๐ฏ type | ๐ demand description | ๐ท๏ธ tag |
---|---|---|
data source plugin | Excel/JSON/Multiple data sources | enhancement , plugin |
format export | LaTeX/ASCII/HTML/JSON export | extending , format |
theme plugin | dark mode | UI/UX , theme |
chart plugin | data visualization | visualization |
Built with โค๏ธ for the Emacs community
Since 2025, supporting efficient productivity workflows