Tksheet
Python tkinter table and treeview widget
Install / Use
/learn @ragardner/TksheetREADME
<div align="center">tksheet - python tkinter table + treeview widget</div>
With apologies, development of this library has ceased except for bug fixes or behavioral issues. Pull requests for other changes are unlikely to be merged.
<table> <thead> <tr> <th style="color: lightgreen" colspan=2><strong>Help</strong></th> </tr> </thead> <tbody> <tr> <td style="color: LightCoral">Versions 6.x.x →</td> <td><a href="https://github.com/ragardner/tksheet/wiki/Version-6" target="_blank">Documentation</a></td> </tr> <tr> <td style="color: lightgreen">Versions 7.x.x →</td> <td><a href="https://ragardner.github.io/tksheet/DOCUMENTATION.html" target="_blank">Documentation</a></td> </tr> <tr> <td align="right" colspan="2"><a href="https://github.com/ragardner/tksheet/blob/master/docs/CHANGELOG.md" target="_blank">Changelog</a></td> </tr> <tr> <td align="right" colspan="2"><a href="https://github.com/ragardner/tksheet/wiki/Version-7#issues" target="_blank">Issues</a></td> </tr> <tr> <td align="right" colspan="2"><a href="https://github.com/ragardner/tksheet/wiki/Version-7#contributions-and-special-thanks" target="_blank">Contributions and Thanks</a></td> </tr> </tbody> </table>Features
- Smoothly display and modify tabular data
- Edit cells directly
- Cell values can potentially be any class, the default is any class with a
__str__method - Drag and drop columns and rows
- Editable Treeview mode with working drag and drop, undo, etc.
- Multiple line header and index cells
- Expand row heights and column widths
- Change fonts and font size (not for individual cells)
- Change any colors in the sheet
- Dropdown boxes
- Check boxes
- Progress bars
- Hide rows and/or columns
- Left
"w", Center"center"or Right"e"text alignment for any cell/row/column - In-built natural sorting
- Optional built-in find window
Note that due to the limitations of the Tkinter Canvas right-to-left (RTL) languages are not supported.
"""
Versions 7+ have succinct and easy to read syntax:
"""
# set data
sheet["A1"].data = "edited cell A1"
# get data
column_b = sheet["B"].data
# add 2 empty columns and add the change to undo stack
sheet.insert_columns(columns=2, idx=4, undo=True)
# delete columns 0 and 3 and add the change to undo stack
sheet.delete_columns(columns=[0, 3], undo=True)
light blue theme
dark theme
treeview mode
Changes for versions 7+:
- ALL
extra_bindings()event objects have changed, information here. - The bound function for
extra_bindings()with"edit_cell"/"end_edit_cell"no longer requires a return value and no longer sets the cell to the return value. Use this instead. edit_cell_validationhas been removed and replaced with the functionedit_validation(), information here.- Only Python versions >=
3.8are supported. tksheetfile names have been changed.- Many other smaller changes, see the changelog for more information.
Related Skills
node-connect
337.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
83.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
337.3kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
