ipydatagrid API速查手册:DataGrid、选择器与渲染器属性完整清单(附示例代码)

📅 2026/8/24 10:59:56
ipydatagrid API速查手册:DataGrid、选择器与渲染器属性完整清单(附示例代码)
ipydatagrid API速查手册DataGrid、选择器与渲染器属性完整清单附示例代码【免费下载链接】ipydatagridFast Datagrid widget for the Jupyter Notebook and JupyterLab项目地址: https://gitcode.com/gh_mirrors/ip/ipydatagridipydatagrid 是面向 Jupyter Notebook 与 JupyterLab 的高性能 DataGrid数据网格控件。本文把它的三大核心 API —— DataGrid 构建属性、选择器Selections接口、单元格渲染器Renderers属性 —— 整理成一份完整清单每个属性都配默认值说明与简短示例代码方便新手随查随用。 快速开始三步创建 DataGrid先安装pip install ipydatagrid最小示例完整演示见 examples/DataGrid.ipynb 同目录下的examples/DataGrid.ipynbimport pandas as pd from ipydatagrid import DataGrid df pd.DataFrame({A: [1, 2, 3], B: [x, y, z]}) grid DataGrid(df) gridDataGrid的完整实现位于 ipydatagrid/datagrid.py所有可从ipydatagrid直接导入的类在 ipydatagrid/init.py 中统一导出。 DataGrid 构建属性完整清单属性默认值说明dataframe必填要展示的 pandas DataFrameindex_namekey索引列显示名称仅构造时可设base_row_size20默认行高像素base_column_size64默认列宽像素base_row_header_size64行头宽度base_column_header_size20列头高度header_visibilityall表头显示模式all/row/column/noneselection_modenone选择模式cell/row/column/noneeditableFalse是否允许双击单元格编辑开启后自动切到cell模式column_widths{}按列名指定自定义列宽auto_fit_columnsFalse是否自动按内容适配列宽auto_fit_params见下方自动适配参数areaall/body/row-header、padding、numColsgrid_styleNone全局网格样式字典可覆盖背景色、网格线、选中框颜色等horizontal_stripesFalse启用斑马行隔行着色vertical_stripesFalse启用隔列着色renderers{}按列名指定渲染器的字典default_rendererTextRenderer全体单元格的默认渲染器header_renderer/corner_rendererNone列头 / 左上角单元格的渲染器示例自定义布局 主题条纹参考examples/Themes.ipynbgrid DataGrid(df, layout{height: 300px}, horizontal_stripesTrue) grid.auto_fit_params {area: body, padding: 60, numCols: 1} grid.auto_fit_columns True # 列宽自动适配见 examples/Column Width Auto-Fit.ipynb 选择器SelectionsAPI编程式选区与取值ipydatagrid的选择模型是矩形选区列表内部以{r1, c1, r2, c2}左上角到右下角行列均从 0 开始表示。相关实现在 ipydatagrid/datagrid.py 的SelectionHelper与SelectionIterator类中交互演示见examples/Selections.ipynb。方法 / 属性说明select(row1, column1, row2None, column2None, clear_modenone)选中单个单元格或矩形区域clear_mode取none/all/currentclear_selection()清空全部选区selections选区矩形列表可双向同步selected_cells所有选中单元格每项为{r: 行, c: 列}selected_cell_values所有选中单元格的值列表selected_cell_iterator逐个遍历选中单元格基于完整数据selected_visible_cell_iterator遍历当前可见经筛选/排序后的选中单元格get_visible_data()返回当前视图的 DataFrame快速示例grid.select(row11, column11, row22, column22, clear_modeall) # 矩形选区 grid.select(4, 1) # 单个单元格 print(grid.selected_cell_values) # 读取选中值 grid.clear_selection() 提示按住Ctrl/Cmd拖选可累加选区按住Shift可在两次点击间选区。✍️ 单元格读写与事件回调方法说明get_cell_value(column, primary_key)/set_cell_value(column, primary_key, value)按列名 主键读写单个单元格支持多主键get_cell_value_by_index(column, row)/set_cell_value_by_index(column, row, value)按列名 行索引读写set_row_value(primary_key, values)按主键整行写入on_cell_change(callback)监听单元格变化回调参数含row、column、valueon_cell_click(callback)监听点击回调参数含region、column、row、cell_value等grid.editable True # 开启就地编辑双击单元格或输入新值即可修改 grid.set_cell_value(Origin, 4, Canada) grid.on_cell_change(lambda c: print(changed:, c[row], c[column], c[value]))编辑与事件回调的完整交互演示见examples/CellEditing.ipynb。 渲染器Renderers属性完整清单全部渲染器定义在 ipydatagrid/cellrenderer.py效果演示见examples/DataGrid.ipynb与examples/ConditionalFormatting.ipynb。TextRenderer默认渲染器其他渲染器的基类属性默认值说明text_valueNone显示文本值 / Scale / VegaExprtext_wrapFalse是否自动换行优先于省略text_elide_directionright文本省略方向right/leftfont12px sans-serif字体text_color/background_colordefault_value字色 / 背景色可传颜色、VegaExpr或ColorScalevertical_alignment/horizontal_alignmentcenter/left垂直 / 水平对齐format/format_typeNone/numberd3 格式串与类型number/timemissing缺失值占位文本BarRenderer继承 TextRenderer增加属性默认值说明bar_value0.0条形数值或 Scale未指定时按列数据自动推断bar_color#4682b4条形颜色可用ColorScale做渐变orientationhorizontal条形方向bar_vertical_alignment/bar_horizontal_alignmentbottom/left条形对齐show_textTrue是否叠加显示文本其余渲染器HyperlinkRendererurl与url_name两个VegaExpr单元格渲染为可点击链接需按住Ctrl/Cmd点击避免误触选择行为演示见examples/HyperlinkRenderer.ipynb。HtmlRenderer单元格内渲染 HTML 片段常用属性与 TextRenderer 一致演示见examples/HtmlRenderer.ipynb。ImageRendererplaceholder加载占位、width/height默认/100%、text_color、background_color。按列装配渲染器from ipydatagrid import DataGrid, BarRenderer, TextRenderer from bqplot import ColorScale renderers { Horsepower: BarRenderer(bar_colorColorScale(min0, max200, schemeviridis)), Name: TextRenderer(text_colornavy), } grid DataGrid(df, renderersrenderers) Vega 表达式与条件格式化VegaExpr/Expr是渲染器属性的瑞士军刀传入一个 JS 风格表达式或 Python 函数即可让颜色、字体等随cell.value、cell.row、cell.metadata动态变化实现跨列条件格式化完整示例见examples/ConditionalFormatting.ipynb。from ipydatagrid import VegaExpr, TextRenderer renderer TextRenderer( background_colorVegaExpr(cell.value 100 ? red : green) ) grid DataGrid(df, default_rendererrenderer)grid_style可用的样式键优先级高于默认渲染器、低于列渲染器background_color、row_background_color、column_background_color、grid_line_color、header_background_color、selection_fill_color、selection_border_color、cursor_fill_color、scroll_shadow等配色示例见examples/Themes.ipynb。⚡ StreamingDataGrid大数据懒加载数据量大时用 ipydatagrid/datagrid.py 中的StreamingDataGrid子类前端只按需向后端拉取视口内的数据内存占用更低、首屏更快演示见examples/Streaming.ipynb。属性 / 方法说明debounce_delay视口请求防抖时间默认 160mstick()通知底层 DataFrame 已变更并刷新不可在循环中调用from ipydatagrid import StreamingDataGrid sgrid StreamingDataGrid(df, debounce_delay50) df.update(new_columns) # 数据变更 sgrid.tick() # 触发前端刷新⚠️ 注意StreamingDataGrid 依赖活动内核导出为静态 HTML 后不可用。 核心文件路径一览文件内容ipydatagrid/datagrid.pyDataGrid、StreamingDataGrid、SelectionHelper实现ipydatagrid/cellrenderer.pyTextRenderer、BarRenderer、HtmlRenderer、HyperlinkRenderer、ImageRenderer、VegaExpr、Expripydatagrid/__init__.py对外导出的全部类js/core/transformStateManager.ts前端排序/筛选/选区状态管理examples/*.ipynb全部功能的官方演示 Notebook以上属性清单覆盖了 ipydatagrid 日常开发中的全部高频 API。建议配合examples/目录下的 Notebook 逐个上手从Selections.ipynb掌握选区再到ConditionalFormatting.ipynb玩转 Vega 表达式即可快速构建出专业级的 Jupyter 数据网格。【免费下载链接】ipydatagridFast Datagrid widget for the Jupyter Notebook and JupyterLab项目地址: https://gitcode.com/gh_mirrors/ip/ipydatagrid创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考