Merge Cells or Split Merged Cells"
From Documentation
(Created page with "{{ZKSpreadsheetEssentialsPageHeader}} __TOC_ ===Purpose=== ZK Spreadsheet support merge cells and unmerge cells. ===ZUML=== ===Composer=== =Version History= {{LastUpdated}}...") |
m (correct highlight (via JWB)) |
||
(19 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ZKSpreadsheetEssentialsPageHeader}} | {{ZKSpreadsheetEssentialsPageHeader}} | ||
− | + | ||
+ | |||
+ | {{Deprecated|url=http://books.zkoss.org/wiki/ZK_Spreadsheet_Essentials}} | ||
+ | |||
+ | __TOC__ | ||
===Purpose=== | ===Purpose=== | ||
− | ZK Spreadsheet support merge cells and | + | 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" highlight="4,5"> | ||
+ | <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> | ||
+ | </source> | ||
===Composer=== | ===Composer=== | ||
+ | ====Range to merge or split==== | ||
+ | Use CellSelectionEvent to get current range. | ||
+ | <source lang="java" highlight="7"> | ||
+ | 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(); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | [[File:ZKSsEss_Spreadsheet_MergeCell_CellSelection.png]]<br/> | ||
+ | |||
+ | ====Merge Cells==== | ||
+ | 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" highlight="6"> | ||
+ | public void onClick$mergeCells() { | ||
+ | Ranges.range(spreadsheet.getSelectedSheet(), | ||
+ | topRow, | ||
+ | leftCol, | ||
+ | bottomRow, | ||
+ | rightCol).merge(false); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | [[File:ZKSsEss_Spreadsheet_MergeCell_Merge.png]]<br/> | ||
+ | |||
+ | ====Split Merged Cells==== | ||
+ | <source lang="java" highlight="6"> | ||
+ | public void onClick$splitMergedCells() { | ||
+ | Ranges.range(spreadsheet.getSelectedSheet(), | ||
+ | topRow, | ||
+ | leftCol, | ||
+ | bottomRow, | ||
+ | rightCol).unMerge(); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | [[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 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 16: | Line 90: | ||
! Version !! Date !! Content | ! Version !! Date !! Content | ||
|- | |- | ||
− | | | + | | 2.1.0 |
− | | | + | | May, 2011 |
− | | | + | | support vertical merge |
|} | |} | ||
{{ZKSpreadsheetEssentialsPageFooter}} | {{ZKSpreadsheetEssentialsPageFooter}} |
Latest revision as of 12:55, 19 January 2022
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.
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();
}
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);
}
Split Merged Cells
public void onClick$splitMergedCells() {
Ranges.range(spreadsheet.getSelectedSheet(),
topRow,
leftCol,
bottomRow,
rightCol).unMerge();
}
View the complete source of ZUML mergeCells.zul
View the complete source of composer MergeCellComposer.java
Version History
Version
Date
Content
2.1.0
May, 2011
support vertical merge
All source code listed in this book is at Github.