Merge Cells or Split Merged Cells"

From Documentation
m (correct highlight (via JWB))
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{ZKSpreadsheetEssentialsPageHeader}}
 
{{ZKSpreadsheetEssentialsPageHeader}}
 +
 +
 +
 +
{{Deprecated|url=http://books.zkoss.org/wiki/ZK_Spreadsheet_Essentials}}
  
 
__TOC__
 
__TOC__
Line 5: Line 9:
 
===Purpose===
 
===Purpose===
 
ZK Spreadsheet support merge cells and split merged cells.
 
ZK Spreadsheet support merge cells and split merged cells.
 +
 +
===Merge cells===
 +
Merge cell can cross rows, also known as vertical merge. <br/>
 +
[[File:ZKSsEss_Spreadsheet_MergeCell.png]]<br/>
  
 
===ZUML===
 
===ZUML===
<source lang="xml" high="4,5">
+
<source lang="xml" highlight="4,5">
 
<zk>
 
<zk>
 
<div height="100%" width="100%" apply="org.zkoss.zssessentials.config.MergeCellComposer">
 
<div height="100%" width="100%" apply="org.zkoss.zssessentials.config.MergeCellComposer">
Line 27: Line 35:
 
====Range to merge or split====
 
====Range to merge or split====
 
Use CellSelectionEvent to get current range.
 
Use CellSelectionEvent to get current range.
<source lang="java" high="7">
+
<source lang="java" highlight="7">
 
Spreadsheet spreadsheet;
 
Spreadsheet spreadsheet;
 
int topRow;
 
int topRow;
Line 41: Line 49:
 
}
 
}
 
</source>
 
</source>
 +
 +
[[File:ZKSsEss_Spreadsheet_MergeCell_CellSelection.png]]<br/>
  
 
====Merge Cells====
 
====Merge Cells====
Use <javadoc directory="zss" method="merge(java.lang.Boolean)">org.zkoss.zss.model.Range</javadoc>to merge cells. Range.merge(true) indicate merge cells horizontal, doesn't merge cells across rows. Range.merge(false) indicate merge cells across rows.
+
Use <javadoc directory="zss" method="merge(java.lang.Boolean)">org.zkoss.zss.model.Range</javadoc>to merge cells. The boolean argument indicates whether to merge cells for each individual rows. <code>true<code> to merge cells for each  row while <code>false</code> indicates merge cells as a whole.
  
<source lang="java" high="6">
+
<source lang="java" highlight="6">
 
public void onClick$mergeCells() {
 
public void onClick$mergeCells() {
 
Ranges.range(spreadsheet.getSelectedSheet(),  
 
Ranges.range(spreadsheet.getSelectedSheet(),  
Line 54: Line 64:
 
}
 
}
 
</source>
 
</source>
 +
 +
[[File:ZKSsEss_Spreadsheet_MergeCell_Merge.png]]<br/>
  
 
====Split Merged Cells====
 
====Split Merged Cells====
<source lang="java" high="6">
+
<source lang="java" highlight="6">
 
public void onClick$splitMergedCells() {
 
public void onClick$splitMergedCells() {
 
Ranges.range(spreadsheet.getSelectedSheet(),  
 
Ranges.range(spreadsheet.getSelectedSheet(),  
Line 66: Line 78:
 
</source>
 
</source>
  
View complete source of ZUML [https://code.google.com/p/zkbooks/source/browse/trunk/zssessentials/examples/WebContent/config/mergeCells.zul mergeCells.zul]
+
[[File:ZKSsEss_Spreadsheet_MergeCell_Split_CellSelection.png]]<br/>
 +
[[File:ZKSsEss_Spreadsheet_MergeCell_Split_Cells.png]]<br/>
 +
 
 +
View the complete source of ZUML [https://code.google.com/p/zkbooks/source/browse/trunk/zssessentials/examples/WebContent/config/mergeCells.zul mergeCells.zul]
  
View complete source of composer [https://code.google.com/p/zkbooks/source/browse/trunk/zssessentials/examples/src/org/zkoss/zssessentials/config/MergeCellComposer.java MergeCellComposer.java]
+
View the complete source of composer [https://code.google.com/p/zkbooks/source/browse/trunk/zssessentials/examples/src/org/zkoss/zssessentials/config/MergeCellComposer.java MergeCellComposer.java]
  
 
=Version History=
 
=Version History=
Line 75: Line 90:
 
! Version !! Date !! Content
 
! Version !! Date !! Content
 
|-
 
|-
| &nbsp;
+
| 2.1.0
| &nbsp;
+
| May, 2011
| &nbsp;
+
| support vertical merge
 
|}
 
|}
  
  
 
{{ZKSpreadsheetEssentialsPageFooter}}
 
{{ZKSpreadsheetEssentialsPageFooter}}

Latest revision as of 12:55, 19 January 2022





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 support merge cells and split merged cells.

Merge cells

Merge cell can cross rows, also known as vertical merge.
ZKSsEss Spreadsheet MergeCell.png

ZUML

<zk>
<div height="100%" width="100%" apply="org.zkoss.zssessentials.config.MergeCellComposer">
	<div>
		<button id="mergeCells" label="Merge Cells" mold="trendy"></button>
		<button id="splitMergedCells" label="Split Merged Cells" mold="trendy"></button>
	</div>
	<spreadsheet id="spreadsheet" src="/WEB-INF/excel/config/merge.xlsx"	
				maxrows="200" 
				maxcolumns="40"
				width="100%"
				height="450px"></spreadsheet>
</div>
</zk>

Composer

Range to merge or split

Use CellSelectionEvent to get current range.

Spreadsheet spreadsheet;
int topRow;
int bottomRow;
int leftCol;
int rightCol;

public void onCellSelection$spreadsheet(CellSelectionEvent event) {
	topRow = event.getTop();
	bottomRow = event.getBottom();
	leftCol = event.getLeft();
	rightCol = event.getRight();
}

ZKSsEss Spreadsheet MergeCell CellSelection.png

Merge Cells

Use Range.merge(Boolean)to merge cells. The boolean argument indicates whether to merge cells for each individual rows. true to merge cells for each row while false indicates merge cells as a whole.

public void onClick$mergeCells() {
	Ranges.range(spreadsheet.getSelectedSheet(), 
			topRow, 
			leftCol, 
			bottomRow, 
			rightCol).merge(false);
}

ZKSsEss Spreadsheet MergeCell Merge.png

Split Merged Cells

public void onClick$splitMergedCells() {
	Ranges.range(spreadsheet.getSelectedSheet(), 
			topRow, 
			leftCol, 
			bottomRow, 
			rightCol).unMerge();
}

ZKSsEss Spreadsheet MergeCell Split CellSelection.png
ZKSsEss Spreadsheet MergeCell Split Cells.png

View the complete source of ZUML mergeCells.zul

View the complete source of composer MergeCellComposer.java

Version History

Last Update : 2022/01/19


Version Date Content
2.1.0 May, 2011 support vertical merge


All source code listed in this book is at Github.


Last Update : 2022/01/19

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