Freeze Rows and Columns

From Documentation


Stop.png This article is out of date, please refer to http://books.zkoss.org/wiki/ZK_Spreadsheet_Essentials for more up to date information.


Purpose

ZK Spreadsheet can freeze row or column using Spreadsheet.setRowfreeze(Integer) or Spreadsheet.setColumnfreeze(Integer).

ZUML

<zk>
	<div height="100%" width="100%" apply="demo.FreezeComposer">
		<div height="3px"></div>
		<spreadsheet id="spreadsheet" src="/demo_sample.xls"	
			maxrows="200" 
			maxcolumns="40"
			width="100%"
			height="450px"></spreadsheet>
		<menupopup id="cellMenu">
			<menu label="Freeze Row">
				<menupopup>
					<menuitem id="unfreezeRows" label="Unfreeze all rows" />
					<menuseparator />
					<menuitem label="Freeze Row 1" forward="onFreezeRow(0)"/>
					<menuitem label="Freeze Row 2" forward="onFreezeRow(1)"/>
					<menuitem label="Freeze Row 3" forward="onFreezeRow(2)"/>
				</menupopup>
			</menu>
			<menu label="Freeze Col">
				<menupopup>
					<menuitem id="unfreezeCols" label="Unfreeze all cols" />
					<menuseparator />
					<menuitem label="Freeze Col 1" forward="onFreezeCol(0)"/>
					<menuitem label="Freeze Col 2" forward="onFreezeCol(1)"/>
					<menuitem label="Freeze Col 3" forward="onFreezeCol(2)"/>
				</menupopup>
			</menu>
		</menupopup>
	</div>
</zk>

Composer

Open Cell Menu

Spreadsheet spreadsheet;
Menupopup cellMenu;
public void onCellRightClick$spreadsheet(CellMouseEvent event) {
	cellMenu.open(event.getPageX(), event.getPageY());
}

ZKSsEss Spreadsheet FreeHeader Row.png

Freeze Row / Column

public void onFreezeRow(ForwardEvent event) {
	int row = Integer.parseInt((String)event.getData());
	spreadsheet.setRowfreeze(row);
}
	
public void onFreezeCol(ForwardEvent event) {
	int col = Integer.parseInt((String)event.getData());
	spreadsheet.setColumnfreeze(col);
}

ZKSsEss Spreadsheet FreezeHeader Result.png

Unfreeze Row /Column

Menuitem unfreezeRows;
public void onClick$unfreezeRows() {
	spreadsheet.setRowfreeze(-1);
}
	
Menuitem unfreezeCols;
public void onClick$unfreezeCols() {
	spreadsheet.setColumnfreeze(-1);
}

ZKSsEss Spreadsheet FreezeHeader Unfreeze.png

Unfreeze result
ZKSsEss Spreadsheet FreezeHeader UnfreezeResult.png

View complete source of ZUML freeze.zul

View complete source of composer FreezeComposer.java

Version History

Last Update : 2022/01/19


Version Date Content
     


All source code listed in this book is at Github.

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.