Get or Set Value, Formula, or Formatted Text"
m (→Scenario) |
m |
||
Line 3: | Line 3: | ||
__TOC__ | __TOC__ | ||
− | ZK Spreadsheet use | + | ===Purpose=== |
+ | ZK Spreadsheet use <javadoc method="getEditText()">org.zkoss.zss.model.Range</javadoc> to get cell's edit tet, and <javadoc method="setEditText(java.lang.String)">org.zkoss.zss.model.Range</javadoc>to set cell's text as input by user. | ||
− | + | ===ZUML=== | |
− | |||
− | |||
− | |||
− | ===ZUML | ||
<source lang="xml" high="4,6"> | <source lang="xml" high="4,6"> | ||
Line 28: | Line 25: | ||
</source> | </source> | ||
− | ==Current Cell== | + | ===Composer=== |
+ | |||
+ | ====Current Cell==== | ||
We can use onCellFocused event to get current focus cell. | We can use onCellFocused event to get current focus cell. | ||
− | ===Cell position=== | + | ====Cell position==== |
First, we need to get the current cell's position. We can get row, column index from CellEvent, then use Spreadsheet.getRowtitle() and Spreadsheet.getColumntitle() to get current cell's title. | First, we need to get the current cell's position. We can get row, column index from CellEvent, then use Spreadsheet.getRowtitle() and Spreadsheet.getColumntitle() to get current cell's title. | ||
Line 42: | Line 41: | ||
</source> | </source> | ||
− | ===Cell value=== | + | ====Cell value==== |
After we get cell's position, we can get cell's value from Range.getEditText() | After we get cell's position, we can get cell's value from Range.getEditText() | ||
Line 56: | Line 55: | ||
</source> | </source> | ||
− | ==Editor== | + | ====Editor==== |
For editor, we can use onOK event, which menus when user click '''Enter''' keyboard, set cell's value and make spreadsheet's focus to next cell | For editor, we can use onOK event, which menus when user click '''Enter''' keyboard, set cell's value and make spreadsheet's focus to next cell |
Revision as of 09:46, 22 November 2010
Purpose
ZK Spreadsheet use Range.getEditText() to get cell's edit tet, and Range.setEditText(String)to set cell's text as input by user.
ZUML
<zk>
<div width="100%" height="100%" apply="demo.EditorComposer" >
<div height="3px"></div>
<combobox id="focusCombobox" mold="rounded" style="text-align:center;">
</combobox>
<textbox id="formulaEditor" cols="100"/>
<div height="3px"></div>
<spreadsheet id="spreadsheet" src="/demo_sample.xls"
maxrows="200"
maxcolumns="40"
width="100%"
height="450px"></spreadsheet>
</div>
</zk>
Composer
Current Cell
We can use onCellFocused event to get current focus cell.
Cell position
First, we need to get the current cell's position. We can get row, column index from CellEvent, then use Spreadsheet.getRowtitle() and Spreadsheet.getColumntitle() to get current cell's title.
public void onCellFocused$spreadsheet(CellEvent event) {
int row = event.getRow();
int col = event.getColumn();
focusCombobox.setText(spreadsheet.getRowtitle(row) + spreadsheet.getColumntitle(col));
...
Cell value
After we get cell's position, we can get cell's value from Range.getEditText()
public void onCellFocused$spreadsheet(CellEvent event) {
...
Sheet sheet = spreadsheet.getSelectedSheet();
currentCell = Utils.getCell(sheet, row, col);
currentRange = Ranges.range(sheet, row, col);
formulaEditor.setText(currentRange.getEditText());
}
Editor
For editor, we can use onOK event, which menus when user click Enter keyboard, set cell's value and make spreadsheet's focus to next cell
public void onOK$formulaEditor() {
currentRange.setEditText(formulaEditor.getText());
spreadsheet.focusTo(currentCell.getRowIndex() + 1, currentCell.getColumnIndex());
}
Second, we can also use onChange and onChanging event to get current editor's value and set cell's value
public void onChanging$formulaEditor(InputEvent event) {
if (currentCell.getCellType() != Cell.CELL_TYPE_FORMULA)
currentRange.setEditText(event.getValue());
}
public void onChange$formulaEditor() {
currentRange.setEditText(formulaEditor.getText());
}
Version History
Version | Date | Content |
---|---|---|
All source code listed in this book is at Github.