Tk::TableMatrix::Spreadsheet - Table Display with Spreadsheet-like bindings.


  use Tk;
  use Tk::TableMatrix::Spreadsheet;

  my $t = $top->Scrolled('Spreadsheet',
    -rows => 21, -cols => 11, 
    -width => 6, -height => 6,
    -titlerows => 1, -titlecols => 1,
    -variable => $arrayVar,
    -selectmode => 'extended',
    -bg => 'white',


Tk::TableMatrix::Spreadsheet is a Tk::TableMatrix-derived widget that implements some bindings so the resulting widget behaves more like a spreadsheet.

Bindings Added:

  • Row/Col resize handles appear when the cursor is placed over a row/col border line in the rol/col title area.

    Dragging these handles will resize the row or column. If multiple rows or columns are selected, then the new row/col size will apply to all row/cols selected.

    Note: With the base Tk::TableMatrix, it is possible to resize the row/cols by dragging on any cell border. To be more spreadsheet-like, Tk::TableMatrix::Spreadsheet defaults to enable row/col resizing only thru the title row/col dragging. To override this default behavoir, set the -resizeborder option to 'both' at startup.

  • A popup menu for row/col insert/delete appears when the mouse is right-clicked in the row/col title areas.

  • Cells activate (i.e. the contents become edit-able) only when the cell is double-clicked or the F2 button is pressed. The default Tk::TableMatrix behavior is for the cell to be activated when the cell is single-clicked.

  • The Escape key causes any changes made to a cell to be canceled and the current selection cleared.

  • The return key causes the the current cell to move down.

  • The tab (or shift tab) key causes the current cell to be moved to the right (left).

  • The delete key will delete the current selection, if no cell is currently active.

  • The Mouse button 2 (middle button) paste from the PRIMARY. (Control-v pastes from the clipboard).

Additional Information

Widget methods, options, etc, are inherited from the Tk::TableMatrix widget. See its docs for additional information.