Excel文档指定位置填充的时候有一些特殊的需求,好比须要Excel文档指定的位置只能填入某一类型的数据或者某几个指定的数据。例如:有用户的需求是在Excel文件的指定单元格处插入一个日期类型的文本,因此这里只能输入日期类型,输入日期类型就须要日期控件,以防止用户随便输入其余格式。javascript
为了实现这样一些特殊的需求,PageOffice开发出来了Excel单元格点击事件,点击单元格时弹出一个模态对话框,在这个对话框中能够嵌入Html页面,Html页面能够用下拉框,复选框,单选框,日期控件等元素强制用户只能输入某一类型的数据或者某几个数据,而后点击肯定后将Html页面元素的值返回到该Excel单元格中。java
Java代码:web
poCtrl1.setJsFunction_OnExcelCellClick("OnExcelCellClick()");
ASP.NET代码:jsp
PageOfficeCtrl1.JsFunction_OnExcelCellClick = "OnExcelCellClick()";
而后在当前前台HTML代码里定义js函数: OnExcelCellClick()函数
<script language="javascript" type="text/javascript"> function OnExcelCellClick(SheetName, SubmitName, Value, Left, Bottom) { if (SubmitName == "ProductName") { return "能够弹出选择对话框,返回用户选择的值。"; } } </script>
定义一个 JavaScript 函数响应 OnExcelCellClick 事件。spa
用户点击Excel文档中指定SubmitName的单元格时触发此事件。 若是您须要响应此事件,您须要在当前 JSP 页面里定义一个 JavaScript 函数。code
在 JavaScript 函数里,能够经过返回值设置当前Cell的值。orm
Java代码:blog
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request); // 设置响应单元格点击事件的js函数 poCtrl.setJsFunction_OnExcelCellClick("OnCellClick()"); ……. poCtrl.webOpen("doc/test.xls", OpenModeType.xlsSubmitForm, "张佚名");
ASP.NET代码:事件
// 设置响应单元格点击事件的js 函数 PageOfficeCtrl1.JsFunction_OnExcelCellClick = "OnCellClick()"; PageOfficeCtrl1.WebOpen("doc/test.xls", PageOffice.OpenModeType.xlsSubmitForm, "操做人姓名");
客户端的js回调函数响应该事件:
function OnCellClick(Celladdress, value, left, bottom) { var i = 0; //表格第一列的5个单元格都弹出选择对话框 while (i<5) { if (Celladdress == "$B$" + (4 + i)) { var strRet = document.getElementById("PageOfficeCtrl1").ShowHtmlModalDialog("select.jsp", "", "left=" + left + "px;top=" + bottom + "px;width=320px;height=230px;frame=no;"); if (strRet != "") { return (strRet); } else { if ((value == undefined) || (value == "")) return " "; else return value; } } i++; } }
详细请参考PageOffice开发包中Samples4示例演示:
2、2八、响应Excel单元格点击事件(专业版、企业版)