## **Excel指定单元格点击事件**
Excel文档指定位置填充的时候有一些特殊的需求,比如需要Excel文档指定的位置只能填入某一类型的数据或者某几个指定的数据。例如:有用户的需求是在Excel文件的指定单元格处插入一个日期类型的文本,所以这里只能输入日期类型,输入日期类型就需要日期控件,以防止用户随便输入其他格式。
为了实现这样一些特殊的需求,PageOffice开发出来了Excel单元格点击事件,点击单元格时弹出一个模态对话框,在这个对话框中可以嵌入Html页面,Html页面可以用下拉框,复选框,单选框,日期控件等元素强制用户只能输入某一类型的数据或者某几个数据,然后点击确定后将Html页面元素的值返回到该Excel单元格中。
### **JsFunction_OnExcelCellClick属性的使用**
----
Java代码:
~~~
poCtrl1.setJsFunction_OnExcelCellClick("OnExcelCellClick()");
~~~
ASP.NET代码:
~~~
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 事件。
用户点击Excel文档中指定SubmitName的单元格时触发此事件。 如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。
在 JavaScript 函数里,可以通过返回值设置当前Cell的值。
### **示例解析:**
----
Java代码:
~~~
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++;
}
}
~~~
### **示例截图:**
>[info]详细请参考PageOffice开发包中Samples4示例演示:
>二、28、响应Excel单元格点击事件(专业版、企业版)
:-: 
- 序言
- 产品简介
- PageOffice试用版和和正式版的区别
- PageOffice对客户端的要求
- PageOffice客户端安装步骤
- PageOffice常用功能与工作原理
- OA系统中的文档在线编辑及流转
- 痕迹保留、键盘批注、手写批注
- 文件并发控制功能
- 与数据库的关系
- SaveDataPage和SaveFilePage的区别
- 调用ZoomSeal签章系统中的印章
- 使用RunMacro运行Office的宏
- 为什么采用弹窗方式打开文件
- POBrowser弹窗方式的具体使用
- Word篇
- 常用接口对象
- WordDocument类
- DataRegion类
- DataTag类
- Paragraph类
- Shape类
- Table类
- Column类
- Row类
- Cell类
- WaterMark类
- DataRegion与DataTag的区别
- 编辑模板中的数据区域
- 动态填充Word文档
- 动态插入Word表格
- 动态创建数据区域
- 数据区域点击事件
- 实现Word文档编辑区域控制
- Word文档全文检索
- Word文件版本对比功能
- 实现用户自定义Word模板
- 实现多个Word文件合并
- Excel篇
- 常用接口对象
- Workbook类
- Sheet类
- Table类
- Cell类
- 动态填充Excel文档
- Excel指定单元格点击事件
- 实现用户自定义Excel模板
- 读取Excel文档中的数据
- 隐藏Excel的行号列标
- Java篇
- PageOffice集成说明
- 动态生成Word文件
- 给Word中的Table赋值
- 动态生成Excel文件
- Maven项目中引用PageOffice
- FileMaker组件功能简介
- ASP.NET篇
- PageOffice集成说明
- 给Word中的Table赋值
- 动态生成Word文档
- FileMaker组件功能简介
- 其他
- POPDF组件功能简介
- PPT相关功能简介
- 实现多人同时编辑一份文档
- PageOffice与Apache POI的区别
- 如何录制宏和编辑宏
- PDF篇
- PDF盖章