PageOffice ZoomSeal ZDFOffice 技术支持 合作伙伴 会员登录 如何购买

Excel指定单元格点击事件

      Excel文档指定位置填充的时候有一些特殊的需求,比如需要Excel文档指定的位置只能填入某一类型的数据或者某几个指定的数据。例如:有用户的需求是在Excel文件的指定单元格处插入一个日期类型的文本,所以这里只能输入日期类型,输入日期类型就需要日期控件,以防止用户随便输入其他格式。为了实现这样一些特殊的需求,PageOffice开发出来了Excel单元格点击事件,点击单元格时弹出一个模态对话框,在这个对话框中可以嵌入Html页面,Html页面可以用下拉框,复选框,单选框,日期控件等元素强制用户只能输入某一类型的数据或者某几个数据,然后点击确定后将Html页面元素的值返回到该Excel单元格中。

 

使用描述

定义一个 JavaScript 函数响应 OnExcelCellClick 事件。

用户点击Excel文档中指定SubmitName的单元格时触发此事件。 如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。

JavaScript 函数里,可以通过返回值设置当前Cell的值。

下面的示例展示如何使用 JsFunction_OnExcelCellClick 属性。

 poCtrl1.setJsFunction_OnExcelCellClick("OnExcelCellClick()");

 

然后在当前 JSP 页面里定义 OnExcelCellClick() 函数。

 <script language="javascript" type="text/javascript">

     function OnExcelCellClick(SheetName, SubmitName, Value, Left, Bottom) {

         if (SubmitName == "ProductName") {

             return "可以弹出选择对话框,返回用户选择的值。";

         }

     }

 </script>

示例解析:

(1)Java代码:

    PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);

    ... ...

         Sheet sheet = workBook.openSheet("Sheet1");

         //定义table对象,设置table对象的设置范围    

    Table table = sheet.openTable("B4:D8");

         //设置table对象的提交名称,以便保存页面获取提交的数据

         table.setSubmitName("Info");

         // 设置响应单元格点击事件的js function

    poCtrl.setJsFunction_OnExcelCellClick("OnCellClick()");

    …….

         poCtrl.webOpen("doc/test.xls", OpenModeType.xlsSubmitForm, "张佚名");

         poCtrl.setTagId("PageOfficeCtrl1");//此行必需

 

(2)C#代码:

    PageOfficeCtrl  poCtrl = new PageOfficeCtrl(request);

         ... ...

         //定义Sheet对象,"Sheet1"是打开的Excel表单的名称

         Sheet sheet = workBook.openSheet("Sheet1");

         //定义table对象,设置table对象的设置范围

         Table table = sheet.openTable("B4:D8");

         //设置table对象的提交名称,以便保存页面获取提交的数据

         table.setSubmitName("Info");

         // 设置响应单元格点击事件的js function

    poCtrl.setJsFunction_OnExcelCellClick("OnCellClick()");

    ... ...

         poCtrl.webOpen("doc/test.xls", OpenModeType.xlsSubmitForm, "张佚名");

 

 客户端的js回调函数响应该事件

 

  1. function OnCellClick(Celladdress, value, left, bottom) { 
  2.     var i = 0; 
  3.     while (i<5) {//表格第一列的5个单元格都弹出选择对话框 
  4.         if (Celladdress == "$B$" + (4 + i)) { 
  5.             var  strRet = document.getElementById("PageOfficeCtrl1").ShowHtmlModalDialog("select.jsp""""left=" + left + "px;top=" + bottom + "px;width=320px;height=230px;frame=no;"); 
  6.             if (strRet != "") { 
  7.                 return (strRet); 
  8.             } 
  9.             else { 
  10.             if ((value == undefined) || (value == "")) 
  11.                 return " "
  12.             else 
  13.                 return value; 
  14.  
  15.             } 
  16.  
  17.         } 
  18.  
  19.         i++; 
  20.     } 
  21.  

 

示例截图:

 

 

:该示例的完整代码和详细演示请参考Samples或者Samples4二、22响应数据区域点击事件(专业版、企业版)同时结合PageOfficee开发帮助。

 

返回顶部 在线购买 下载中心 400-6600-770 2692936468