Merge Cells or Split Merged Cells"
From Documentation
m (correct highlight (via JWB)) |
|||
(17 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" | + | <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 24: | Line 32: | ||
===Composer=== | ===Composer=== | ||
− | ====Merge Cells=== | + | |
− | Use Range.merge | + | ====Range to merge or split==== |
− | <source lang=" | + | 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() { | public void onClick$mergeCells() { | ||
Ranges.range(spreadsheet.getSelectedSheet(), | Ranges.range(spreadsheet.getSelectedSheet(), | ||
Line 35: | Line 64: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | [[File:ZKSsEss_Spreadsheet_MergeCell_Merge.png]]<br/> | ||
+ | |||
====Split Merged Cells==== | ====Split Merged Cells==== | ||
− | <source lang=" | + | <source lang="java" highlight="6"> |
public void onClick$splitMergedCells() { | public void onClick$splitMergedCells() { | ||
Ranges.range(spreadsheet.getSelectedSheet(), | Ranges.range(spreadsheet.getSelectedSheet(), | ||
Line 45: | Line 77: | ||
} | } | ||
</source> | </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 51: | 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.