zul页面代码
<?xml version="1.0" encoding="UTF-8"?>
<?taglib uri="http://www.zkoss.org/zss/function" prefix="ss" ?>
<zk>
<window title="差旅费计算" use="org.zkoss.zss.demo.MainWindow"
border="normal" style="heigth:300px;width:700px">
<hbox>
<label style="font-weight:bold" id="lbpos" value="A1"/>
<textbox id="tbxval" width="600px" />
</hbox>
<spreadsheet id="ss1" url="/WEB-INF/travel.xls" maxrow="20" maxcolumn="20" height="300px" width="690px" style="border:1px solid #8AA3C1" />
<vbox>
<hbox>退还 (合计 * 0.5) : <label id="lb" value="${ss:formula(ss1.book, '=Sheet1!B5 * 0.5')}"/></hbox>
</vbox>
<zscript>
ss1.book.addFormulaListener(new SimpleFormulaListener(lb, "value", "=Sheet1!B5 * 0.5"));
</zscript>
</window>
</zk>
java代码:MainWindow.java
package org.zkoss.zss.demo;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.ext.AfterCompose;
import org.zkoss.zss.engine.xel.Indexes;
import org.zkoss.zss.model.Book;
import org.zkoss.zss.model.Cell;
import org.zkoss.zss.model.Sheet;
import org.zkoss.zss.ui.CellEvent;
import org.zkoss.zss.ui.Events;
import org.zkoss.zss.ui.Spreadsheet;
import org.zkoss.zul.Label;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
public class MainWindow extends Window implements AfterCompose{
int lastRow=0;
int lastCol=0;
Book book;
Spreadsheet spreadsheet;
public void afterCompose() {
spreadsheet = (Spreadsheet)getFellow("ss1");
//设置要读取的xls文件
book = spreadsheet.getBook();
spreadsheet.addEventListener(Events.ON_CELL_FOUCSED,new EventListener(){
public void onEvent(Event event) throws Exception {
onCellEvent((CellEvent)event);
}
});
spreadsheet.addEventListener(Events.ON_START_EDITING,new EventListener(){
public void onEvent(Event event) throws Exception {
onCellEvent((CellEvent)event);
}
});
final Textbox tbxval = (Textbox)getFellow("tbxval");
tbxval.addEventListener("onChange",new EventListener(){
public void onEvent(Event event) throws Exception {
doCellChange(tbxval.getValue());
}
});
}
void onCellEvent(CellEvent event){
Sheet sheet = (Sheet)book.getSheets().get(event.getSheetIndex());
lastRow = event.getRow();
lastCol = event.getColumn();
Label lbpos = (Label)getFellow("lbpos");
Textbox tbxval = (Textbox)getFellow("tbxval");
Cell cell = sheet.getCell(lastRow, lastCol);
lbpos.setValue(Indexes.toA1(lastRow,lastCol,false,false));
tbxval.setValue(cell == null ? "" : cell.getEditText());
}
void doCellChange(String value){
if(lastRow == -1){
return;
}
Sheet sheet = (Sheet)book.getSheets().get(0);
Cell cell = sheet.getCell(lastRow, lastCol);
if(cell==null){
sheet.setCellValue(lastRow, lastCol, "");
cell = (Cell)sheet.getCell(lastRow,lastCol);
}
cell.setEditText(value);
}
}
使用说明:
1、双击单元格或者按F2键可以编辑单元格。
2、可以按上下左右键,HOME、END键来移动焦点。
3、编辑的时候,你可以输入文本,数字或者公式,比如=SUM(B1:B4)
4、按ENTER完成编辑,按ESC退出编辑
效果图:
- 大小: 23.9 KB
分享到:
相关推荐
zk spreadsheet 在线电子表格3.9.1 破解版
ZK Spreadsheet(3-1)
ZK Spreadsheet API.chm ZK Spreadsheet API.chm
zk.part2.rar(3-2)
ZK试算表ZK Spreadsheet是一个基于Web的开源可嵌入的在线电子表格,可在使用纯Java的浏览器中提供Excel的丰富功能。 借助可嵌入的Excel功能,开发人员可以轻松创建交互式,协作和动态的企业应用程序。 较新的。 更好...
zk.part3.rar(3-3)
PhpSpreadsheet是一个纯PHP编写的组件库,它使用现代PHP写法,代码质量和性能比PHPExcel高不少,完全可以替代PHPExcel(PHPExcel已不再维护)。使用PhpSpreadsheet可以轻松读取和写入Excel文档,支持Excel的所有操作...
轻量级在线表格(canvas ) 组件.zip,A web-based JavaScript(canvas) spreadsheet
荧光粉的电子表格组件 安装 git clone https://github.com/jupyter/spreadsheet.git cd spreadsheet npm install tsd reinstall -so gulp 在电子表格目录中或在与电子表格目录相同级别的单独目录中构建磷光体。 ...
像数据网格组件一样ReactExcel。 演示和文档 提供现场示例。 可文档。 特征 行/列大小调整; 固定行和列; 合并细胞; 自定义单元格; 虚拟化 造型风格 要获得基本样式,可以导入默认样式: import '@vadim-...
iOS 类似 Excel 的 SpreadSheet 组件效果。.zip,iOS应用程序的完全可配置电子表格视图用户界面。使用此框架,您可以轻松创建复杂的布局,如计划、甘特图或时间表,就像使用Excel一样。
试算表Rails应用的电子表格view_component安装将此行添加到您的应用程序的Gemfile中: gem 'spreadsheet'... = render Spreadsheet::Cell.new(id: 'cell-id', value: 'A Spreadsheet Cell') 大多数组件接受以下选项: c
最新版本的tp5引入的PhpSpreadsheet包,导出可以计算公式的表格,包含tp5框架+sql
《C++ GUI Qt4编程》书中电子表格程序Spreadsheet的增强版。主要修改如下: 1. 将SDI改为MDI 2. 增加Undo和Redo功能(Command设计模式实现) 3. 自动修正公式(复制公式到新的位置时,根据新位置修正公式) 4. 其他...
程序员可以容易的添加一个类似Excel功能的,可编辑的表格功能到自己的Web应用中。 [单元格格式化和函数功能] 使用dhtmlxSpreadsheet的单元格格式化功能,用户可以为不同的单元格设置不同的字体颜色,单元格背景,...
PhpSpreadsheet一个读取和写入电子表格文件的纯 PHP 库。允许您读取和写入不同的电子表格文件格式,如 Excel 和 LibreOffice Calc。
google-spreadsheet-javascript, 从google电子表格读取数据 Google-Spreadsheet-Javascript这是一个简单的jQuery插件类,允许JavaScript应用程序从Google电子表格中提取数据。有关最基本的用法( 请看这里的行动。),...
React电子表格电子表格作为 reactJS 组件。安装依赖项: 节点JS 0.10 1.4 咕噜声 0.4如何安装 $ git clone https://github.com/carlosvillu/react-spreadsheet $ cd react-spreadsheet $ npm install $ grunt dev在...
SPREADSHEET是OFFICE的WEB组件,一般机子安装OFFICE后都有,以OFFXP为例,安装目录在"C:\Program Files\Common Files\Microsoft Shared\Web Components\10\2052\"下,包含有完整的帮助信息,或者在窗体中插入SPREADSHEET...