com.zhuozhengsoft.pageoffice
类 PageOfficeCtrl

java.lang.Object
  继承者 com.zhuozhengsoft.pageoffice.PageOfficeCtrl

public class PageOfficeCtrl
extends java.lang.Object

PageOfficeCtrl 类是PageOffice开发平台中的核心类,用来在线打开、显示、编辑Office文档。

版本:
2.0
作者:
北京卓正志远软件有限公司

构造方法摘要
PageOfficeCtrl(HttpServletRequest request)
          初始化 PageOfficeCtrl 类的新实例。
 
方法摘要
 void addCustomMenuItem(java.lang.String caption, java.lang.String jsFunction, boolean enabled)
          添加菜单项到自定义菜单。
 void addCustomToolButton(java.lang.String caption, java.lang.String jsFunction, int iconIndex)
          添加按钮到自定义工具栏。
 void setAllowCopy(boolean value)
          设置当前文档是否允许复制、粘贴的功能。
 void setBorderColor(java.awt.Color value)
          设置 PageOfficeCtrl 控件的边框颜色。
 void setBorderStyle(BorderStyleType value)
          设置 PageOfficeCtrl 控件的边框样式。
 void setCaption(java.lang.String value)
          设置 PageOfficeCtrl 控件标题栏文字。
 void setCompressDocument(boolean value)
          设置控件在保存文档时是否使用压缩。
 void setCustomMenuCaption(java.lang.String value)
          设置自定义菜单的标题。
 void setCustomRibbon(java.lang.String value)
          自定义Office2007/2010的Ribbon工具栏。
 void setCustomToolbar(boolean value)
          设置 PageOfficeCtrl 控件是否显示自定义工具栏。
 void setEnableUserProtection(boolean value)
          表示是否启用用户自己设置的文档保护。
 void setFileTitle(java.lang.String value)
          设置控件客户端弹出的“另存为”对话框的默认文件名。
 void setHTTPBasic_Password(java.lang.String value)
          打开或保存文档时要求 HTTP Basic 验证的用户密码。
 void setHTTPBasic_UserName(java.lang.String value)
          打开或保存文档时要求 HTTP Basic 验证的用户名。
 void setJsFunction_AfterDocumentClosed(java.lang.String value)
          定义一个 JavaScript 函数响应 AfterDocumentClosed 事件。
 void setJsFunction_AfterDocumentOpened(java.lang.String value)
          定义一个 JavaScript 函数响应 AfterDocumentOpened 事件。
 void setJsFunction_AfterDocumentSaved(java.lang.String value)
          定义一个 JavaScript 函数响应 AfterDocumentSaved 事件。
 void setJsFunction_BeforeDocumentClosed(java.lang.String value)
          定义一个 JavaScript 函数响应 BeforeDocumentClosed 事件。
 void setJsFunction_BeforeDocumentSaved(java.lang.String value)
          定义一个 JavaScript 函数响应 BeforeDocumentSaved 事件。
 void setJsFunction_OnExcelCellClick(java.lang.String value)
          定义一个 JavaScript 函数响应 OnExcelCellClick 事件。
 void setJsFunction_OnWordDataRegionClick(java.lang.String value)
          定义一个 JavaScript 函数响应 OnWordDataRegionClick 事件。
 void setMenubar(boolean value)
          设置 PageOfficeCtrl 控件是否显示菜单栏。
 void setMenubarColor(java.awt.Color value)
          设置控件的菜单栏颜色。
 void setMenubarTextColor(java.awt.Color value)
          设置控件菜单栏的文字颜色。
 void setOfficeToolbars(boolean value)
          设置 PageOfficeCtrl 控件是否显示Office工具栏。
 void setOfficeVendor(OfficeVendorType value)
          设置Office办公软件类型。
 void setProtectPassword(java.lang.String value)
          设置当前Word或Excel文档使用的保护密码。
 void setSaveDataPage(java.lang.String saveDataPage)
          设置 PageOffice 控件的数据保存页面。
 void setSaveFileMaxSize(int value)
          设置控件能够保存最大文档的大小,以字节为单位。
 void setSaveFilePage(java.lang.String saveFilePage)
          设置 PageOffice 控件的文档保存页面。
 void setServerPage(java.lang.String serverPage)
          设置 PageOfficeCtrl 控件的运行服务页面。
 void setTagId(java.lang.String id)
          此方法非常重要,在PageOfficeCtrl的后台Java调用代码末尾处必须调用。
 void setTheme(ThemeType value)
          设置 PageOfficeCtrl 控件的界面主题。
 void setTimeSlice(int value)
          设置文档并发控制的时间片,以分钟为单位。
 void setTitlebar(boolean value)
          设置 PageOfficeCtrl 控件是否显示标题栏。
 void setTitlebarColor(java.awt.Color value)
          设置控件的标题栏颜色。
 void setTitlebarTextColor(java.awt.Color value)
          设置控件标题栏的文字颜色。
 void setVisible(boolean value)
          设置控件运行时是否可见。
 void setWriter(java.lang.Object writerObj)
          设置 PageOfficeCtrl 控件的数据对象。
 void setZoomSealServer(java.lang.String value)
          设置当前网站以外的ZoomSeal管理系统的印章服务地址。
 void webCreateNew(java.lang.String userName, DocumentVersion docVersion)
          创建一个新文档并以普通编辑方式在线打开此文档。
 void webOpen(java.lang.String documentURL, OpenModeType openMode, java.lang.String userName)
          在线打开Office文档。
 void wordCompare(java.lang.String documentURL, java.lang.String documentURL2, OpenModeType openMode, java.lang.String userName)
          在线比较两个不同版本的Word文档。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

PageOfficeCtrl

public PageOfficeCtrl(HttpServletRequest request)
初始化 PageOfficeCtrl 类的新实例。

方法详细信息

setTagId

public void setTagId(java.lang.String id)
              throws java.lang.Exception,
                     java.io.IOException
此方法非常重要,在PageOfficeCtrl的后台Java调用代码末尾处必须调用。

下面的示例展示如何在线打开Word文档。

 PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
 //设置 PageOfficeCtrl 的运行服务页面
 poCtrl1.setServerPage("poserver.do"); // 必须
 
 //设置界面样式
 poCtrl1.setCaption("测试文档");
 poCtrl1.setTheme(ThemeType.Office2007);
 poCtrl1.setBorderStyle(BorderStyleType.BorderFlat);
 
 //关闭菜单栏
 poCtrl1.setMenubar(false);
 //关闭Office工具栏
 poCtrl1.setOfficeToolbars(false);
 
 //设置用来接收文档的保存页面
 poCtrl1.setSaveFilePage("savefile.jsp");
 //打开Word文档
 poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");
 poCtrl1.setTagId("PageOfficeCtrl1");
 

参数:
id - 前台HTML代码中放置 PageOfficeCtrl 标签处开发者自定义的控件ID。
抛出:
java.lang.Exception
java.io.IOException
另请参见:
FileSaver.saveToFile()方法中完整的示例代码,学习如何编写 savefile.jsp 页面的代码接收PageOfficeCtrl提交的文档。

setBorderStyle

public void setBorderStyle(BorderStyleType value)
设置 PageOfficeCtrl 控件的边框样式。

参数:
value - 边框样式,默认值是 BorderStyleType.BorderFlat。

setBorderColor

public void setBorderColor(java.awt.Color value)
设置 PageOfficeCtrl 控件的边框颜色。如果 BorderStyle 的值是 BorderStyleType.BorderFlat, 本属性无效。

参数:
value - 边框颜色。

setTheme

public void setTheme(ThemeType value)
设置 PageOfficeCtrl 控件的界面主题。如果本属性的值不是 CustomStyle,那么对属性 MenubarColor、MenubarTextColor、TitlebarColor、TitlebarTextColor的任何设置都将无效。

参数:
value - 界面主题,默认值是 ThemeType.Office2007。

setTitlebar

public void setTitlebar(boolean value)
设置 PageOfficeCtrl 控件是否显示标题栏。

参数:
value - 默认值是 true。

setTitlebarColor

public void setTitlebarColor(java.awt.Color value)
设置控件的标题栏颜色。当 Theme 的值是 ThemeType.CustomStyle时,本属性才有效。

参数:
value - 标题栏颜色。

setTitlebarTextColor

public void setTitlebarTextColor(java.awt.Color value)
设置控件标题栏的文字颜色。当 Theme 的值是 ThemeType.CustomStyle时,本属性才有效。

参数:
value - 标题栏的文字颜色。

setMenubar

public void setMenubar(boolean value)
设置 PageOfficeCtrl 控件是否显示菜单栏。

参数:
value - 默认值是 true。

setMenubarColor

public void setMenubarColor(java.awt.Color value)
设置控件的菜单栏颜色。当 Theme 的值是 ThemeType.CustomStyle时,本属性才有效。

参数:
value - 菜单栏颜色。

setMenubarTextColor

public void setMenubarTextColor(java.awt.Color value)
设置控件菜单栏的文字颜色。当 Theme 的值是 ThemeType.CustomStyle时,本属性才有效。

参数:
value - 菜单栏的文字颜色。

setCustomToolbar

public void setCustomToolbar(boolean value)
设置 PageOfficeCtrl 控件是否显示自定义工具栏。

参数:
value - 默认值是 true。

setOfficeToolbars

public void setOfficeToolbars(boolean value)
设置 PageOfficeCtrl 控件是否显示Office工具栏。

参数:
value - 默认值是 true。

setCaption

public void setCaption(java.lang.String value)
设置 PageOfficeCtrl 控件标题栏文字。

参数:
value - 默认值是 "卓正 PageOffice 开发平台"。

setAllowCopy

public void setAllowCopy(boolean value)
设置当前文档是否允许复制、粘贴的功能。如果设置为false,当前文档禁止用户复制、粘贴文档内容。

参数:
value - 默认值是 true。

setFileTitle

public void setFileTitle(java.lang.String value)
设置控件客户端弹出的“另存为”对话框的默认文件名。当用户需要另存当前文档到本地磁盘时,点击控件“另存为”菜单或按钮。这时控件会弹出“另存为”对话框。本属性 FileTitle 可以设置对话框里默认的文件名。

参数:
value -

setServerPage

public void setServerPage(java.lang.String serverPage)
设置 PageOfficeCtrl 控件的运行服务页面。

此属性是 PageOfficeCtrl 控件的重要属性。ServerPage 页面为 PageOfficeCtrl 控件提供必须的运行服务。 在调用 webOpenwebCreateNew 方法之前,您必须为 PageOfficeCtrl 控件设置 ServerPage 属性。

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

 poCtrl1.setServerPage("poserver.do"); // 此行必须
 poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");
 poCtrl1.setTagId("PageOfficeCtrl1"); // 此行必须
 

参数:
serverPage - 无默认值。ServerPage 属性的值是PageOffice的服务页面的URL。

这里的URL可以是相对于当前页面的相对地址,也可以是http开头的绝对地址。相对URL可以是相对于当前页面的地址,也可以是以"/"开头的相对于整个Web应用程序根的地址。

注意:如果URL采用http开头的绝对地址,您必须确保这个地址和当前页面同属于一个网站。

另请参见:
PageOfficeCtrl.setTagId()方法中完整的示例代码,学习如何在线打开文档。

setSaveFilePage

public void setSaveFilePage(java.lang.String saveFilePage)
设置 PageOffice 控件的文档保存页面。

此属性是 PageOfficeCtrl 控件的重要属性。SaveFilePage 页面用来接收 PageOfficeCtrl 控件提交的文档。如果您需要保存用户修改后的文档,您就必须在调用 webOpenwebCreateNew 之前给 SaveFilePage 属性赋值。

当 PageOfficeCtrl 控件保存文档的时候,PageOfficeCtrl 控件首先提交文档中需要提交的数据到指定的 SaveDataPage 页面,然后再提交文档到指定的 SaveFilePage 页面。

如果 SaveDataPage 属性没有赋值,控件就不会提交文档中的指定数据。如果 SaveFilePage 属性没有赋值,控件就不会提交文档。 如果 SaveDataPage 属性和 SaveFilePage 属性都没有赋值,PageOfficeCtrl 控件会报错。

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

 poCtrl1.setServerPage("poserver.do"); // 此行必须
 poCtrl1.setSaveFilePage("savefile.jsp"); // 设置 savefile.jsp 用来保存文档。
 poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");
 poCtrl1.setTagId("PageOfficeCtrl1"); // 此行必须
 

参数:
saveFilePage - 无默认值。SaveFilePage 属性的值是用来接收控件提交文档的服务器页面的URL。

这里的URL可以是相对于当前页面的相对地址,也可以是http开头的绝对地址。相对URL可以是相对于当前页面的地址,也可以是以"/"开头的相对于整个Web应用程序根的地址。

注意:如果URL采用http开头的绝对地址,您必须确保这个地址和当前页面同属于一个网站。

另请参见:
PageOfficeCtrl.setTagId()方法中完整的示例代码,学习如何在线打开文档。

setSaveDataPage

public void setSaveDataPage(java.lang.String saveDataPage)
设置 PageOffice 控件的数据保存页面。

此属性是 PageOfficeCtrl 控件的重要属性。SaveDataPage 页面用来接收 PageOfficeCtrl 控件提交的用户输入的数据。如果您需要保存用户输入到文档中的数据,您就必须在调用 webOpen 之前给 SaveDataPage 属性赋值。

调用 webOpen 方法之前,创建 com.zhuozhengsoft.pageoffice.wordwriter.WordDocument 或 com.zhuozhengsoft.pageoffice.excelwriter.Workbook 对象指定要提交的DataRegions、Cells 或 Tables 并且调用 setWriter 方法设置数据对象。

如果当前文档是Word文档,webOpen 方法中的 OpenMode 参数必须设置为 OpenModeType.docSubmitForm。如果当前文档是Excel文档,webOpen 方法中的 OpenMode 参数必须设置为 OpenModeType.xlsSubmitForm。

SaveDataPage 属性赋值后,您需要创建 SaveData 页面用来接收 PageOfficeCtrl 控件提交的数据。在 SaveData 页面里,您需要创建 com.zhuozhengsoft.pageoffice.wordreader.WordDocument 或 com.zhuozhengsoft.pageoffice.excelreader.Workbook 对象用来接收控件提交的用户输入数据。

当 PageOfficeCtrl 控件保存文档的时候,PageOfficeCtrl 控件首先提交文档中需要提交的数据到指定的 SaveDataPage 页面,然后再提交文档到指定的 SaveFilePage 页面。

如果 SaveDataPage 属性没有赋值,控件就不会提交文档中的指定数据。如果 SaveFilePage 属性没有赋值,控件就不会提交文档。 如果 SaveDataPage 属性和 SaveFilePage 属性都没有赋值,PageOfficeCtrl 控件会报错。

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

Word 示例代码:

 poCtrl1.setServerPage("poserver.do"); // 此行必须
 WordDocument doc = new WordDocument();
 DataRegion dataRegion = doc.openDataRegion("name");
 dataRegion.setEditing(true);
 poCtrl1.setSaveDataPage("savedata.jsp");
 poCtrl1.setWriter(doc);
 poCtrl1.webOpen("doc/test.doc", OpenModeType.docSubmitForm, "Jack");
 poCtrl1.setTagId("PageOfficeCtrl1"); // 此行必须
 

Excel 示例代码:

 poCtrl1.setServerPage("poserver.do"); // 此行必须
 Workbook wb = new Workbook();
 Cell cell1 = wb.openSheet("Sheet1").OpenCell("B2");
 cell1.setSubmitName("ItemCount");
 poCtrl1.setSaveDataPage("savedata.jsp");
 poCtrl1.setWriter(wb);
 poCtrl1.webOpen("doc/test.xls", OpenModeType.xlsSubmitForm, "张三");
 poCtrl1.setTagId("PageOfficeCtrl1"); // 此行必须
 

参数:
saveDataPage - 无默认值。SaveDataPage 属性的值是用来接收控件提交用户输入数据的服务器页面的URL。

这里的URL可以是相对于当前页面的相对地址,也可以是http开头的绝对地址。相对URL可以是相对于当前页面的地址,也可以是以"/"开头的相对于整个Web应用程序根的地址。

注意:如果URL采用http开头的绝对地址,您必须确保这个地址和当前页面同属于一个网站。


setSaveFileMaxSize

public void setSaveFileMaxSize(int value)
设置控件能够保存最大文档的大小,以字节为单位。此属性用来限制用户提交过大的文档到Web服务器。

参数:
value - 默认值是0,表示不限制能够保存的文档大小。

setCompressDocument

public void setCompressDocument(boolean value)
设置控件在保存文档时是否使用压缩。

如果属性值为true,PageOfficeCtrl 将先压缩文档,然后把压缩后的文档提交到Web服务器。当 PageOfficeCtrl 下次打开此压缩文档时,PageOfficeCtrl 会自动识别压缩格式并打开文档。 使用压缩技术的优点是可以节约服务器磁盘空间,降低网络流量,加快文档打开速度和保存速度。 使用压缩技术的缺点是压缩后的文档格式不能被Office软件识别,导致登录到Web服务器的用户无法在文件夹里直接双击打开文档。 一般情况下,无需使用此属性。

参数:
value - 默认值是 false。

setHTTPBasic_UserName

public void setHTTPBasic_UserName(java.lang.String value)
打开或保存文档时要求 HTTP Basic 验证的用户名。如果您的Web项目采用了 HTTP Basic 验证或Windows集成验证,您需要给 HTTPBasic_UserName 和 HTTPBasic_Password 属性赋值才能保证 PageOfficeCtrl 控件成功打开保存文档。


setHTTPBasic_Password

public void setHTTPBasic_Password(java.lang.String value)
打开或保存文档时要求 HTTP Basic 验证的用户密码。如果您的Web项目采用了 HTTP Basic 验证或Windows集成验证,您需要给 HTTPBasic_UserName 和 HTTPBasic_Password 属性赋值才能保证 PageOfficeCtrl 控件成功打开保存文档。


setTimeSlice

public void setTimeSlice(int value)
设置文档并发控制的时间片,以分钟为单位。

在网络环境下,如果同一时间里有多个用户同时打开了同一个文档,都分别对文档做了修改,保存文档时就会产生用户之间互相覆盖文档的问题,结果导致部分用户修改内容丢失。解决这个问题的技术在PageOffice里就称为文档并发控制。

如果 TimeSlice 大于0,就表示对当前文档开启并发控制。

TimeSlice 表示当前打开文档的操作用户能够对当前文档保持的编辑时间,以分钟为单位。

TimeSlice 超时,PageOffice 会自动释放并发控制锁,当前用户不能再保存当前文档。如果用户在 TimeSlice 超时之前就关闭了文档,PageOffice 会自动释放并发控制锁,随后其他用户能够立即打开此文档进行编辑。

当前文档处于并发控制状态时,其他用户打开此文档时会得到并发控制提示信息,如果继续打开文档就只能以只读方式打开此文档。

参数:
timeSlice - 默认值为0,表示当前文档不使用并发控制技术。

setJsFunction_AfterDocumentOpened

public void setJsFunction_AfterDocumentOpened(java.lang.String value)
定义一个 JavaScript 函数响应 AfterDocumentOpened 事件。

文档打开之后在页面里触发此事件。 如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。

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

 poCtrl1.setJsFunction_AfterDocumentOpened("AfterDocumentOpened()");
 

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

 <script language="javascript" type="text/javascript">
     function AfterDocumentOpened() {
         // 添加您的代码。
     }
 </script>
 


setJsFunction_AfterDocumentClosed

public void setJsFunction_AfterDocumentClosed(java.lang.String value)
定义一个 JavaScript 函数响应 AfterDocumentClosed 事件。

文档关闭之后在页面里触发此事件。 如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。

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

 poCtrl1.setJsFunction_AfterDocumentClosed("AfterDocumentClosed()");
 

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

 <script language="javascript" type="text/javascript">
     function AfterDocumentClosed() {
         // 添加您的代码。
     }
 </script>
 


setJsFunction_AfterDocumentSaved

public void setJsFunction_AfterDocumentSaved(java.lang.String value)
定义一个 JavaScript 函数响应 AfterDocumentSaved 事件。

文档保存之后在页面里触发此事件。 如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。

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

 poCtrl1.setJsFunction_AfterDocumentSaved("AfterDocumentSaved()");
 

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

 <script language="javascript" type="text/javascript">
     function AfterDocumentSaved() {
         // 添加您的代码。
     }
 </script>
 


setJsFunction_BeforeDocumentClosed

public void setJsFunction_BeforeDocumentClosed(java.lang.String value)
定义一个 JavaScript 函数响应 BeforeDocumentClosed 事件。

文档关闭之前在页面里触发此事件。 如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。

在 JavaScript 函数里,可以返回false阻止 PageOfficeCtrl 控件关闭文档。

但是返回false并不能阻止浏览器关闭。如果您想在浏览器关闭前通知用户先保存文档,建议在页面的window.onunload事件里编写代码实现。

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

 poCtrl1.setJsFunction_BeforeDocumentClosed("BeforeDocumentClosed()");
 

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

 <script language="javascript" type="text/javascript">
     function BeforeDocumentClosed() {
         // 添加您的代码。
         return true;
     }
 </script>
 


setJsFunction_BeforeDocumentSaved

public void setJsFunction_BeforeDocumentSaved(java.lang.String value)
定义一个 JavaScript 函数响应 BeforeDocumentSaved 事件。

文档保存之前在页面里触发此事件。 如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。

在 JavaScript 函数里,可以返回false阻止 PageOfficeCtrl 控件保存文档。

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

 poCtrl1.setJsFunction_BeforeDocumentSaved("BeforeDocumentSaved()");
 

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

 <script language="javascript" type="text/javascript">
     function BeforeDocumentSaved() {
         // 添加您的代码。
         return true;
     }
 </script>
 


setJsFunction_OnWordDataRegionClick

public void setJsFunction_OnWordDataRegionClick(java.lang.String value)
定义一个 JavaScript 函数响应 OnWordDataRegionClick 事件。

用户点击Word文档中的预定义的数据区域(DataRegion)时触发此事件。 如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。

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

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

 poCtrl1.setJsFunction_OnWordDataRegionClick("OnWordDataRegionClick()");
 

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

 <script language="javascript" type="text/javascript">
     function OnWordDataRegionClick(Name, Value, Left, Bottom) {
         if (Name == "PO_N004") {
             return "可以弹出选择对话框,返回用户选择的值。";
         }
     }
 </script>
 


setJsFunction_OnExcelCellClick

public void setJsFunction_OnExcelCellClick(java.lang.String value)
定义一个 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>
 


setCustomMenuCaption

public void setCustomMenuCaption(java.lang.String value)
设置自定义菜单的标题。

参数:
value - 默认值是 "Custom Me&nu"。

setCustomRibbon

public void setCustomRibbon(java.lang.String value)
自定义Office2007/2010的Ribbon工具栏。


setProtectPassword

public void setProtectPassword(java.lang.String value)
设置当前Word或Excel文档使用的保护密码。如果当前文档涉及电子印章功能,请不要设置此密码。


setOfficeVendor

public void setOfficeVendor(OfficeVendorType value)
设置Office办公软件类型。目前支持的Office办公软件有:Microsoft Office和金山WPS。

参数:
value - 默认值是OfficeVendorType.MSOffice。

setVisible

public void setVisible(boolean value)
设置控件运行时是否可见。


setZoomSealServer

public void setZoomSealServer(java.lang.String value)
设置当前网站以外的ZoomSeal管理系统的印章服务地址。一般不设置此属性,加盖印章时默认连接的是当前网站的印章服务。


setEnableUserProtection

public void setEnableUserProtection(boolean value)
表示是否启用用户自己设置的文档保护。仅对Word、Excel文档有效,只能配合docNormalEdit、xlsNormalEdit模式使用。一般不设置此属性,应该由PageOffice自动保护文档,可以更好地控制文档流转。

参数:
value - 默认值是 false。

addCustomMenuItem

public void addCustomMenuItem(java.lang.String caption,
                              java.lang.String jsFunction,
                              boolean enabled)
                       throws java.lang.Exception
添加菜单项到自定义菜单。调用此方法为自定义菜单添加每一个菜单项。由开发人员自定义的 JavaScript 函数响应菜单项的点击事件。

下面的示例展示如何使用 AddCustomMenuItem 方法。

 poCtrl1.setCustomMenuCaption("我的菜单(&M)");
 poCtrl1.addCustomMenuItem("显示痕迹(&S)", "OnCustomMenuClick()", true);
 poCtrl1.addCustomMenuItem("隐藏痕迹(&H)", "OnCustomMenuClick()", true);
 poCtrl1.addCustomMenuItem("-", "", true);
 poCtrl1.addCustomMenuItem("接受所有修订(&A)", "DoAcceptAll()", false);
 

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

 <script language="javascript" type="text/javascript">
     function OnCustomMenuClick(iIndex, sCaption) {
         var PageOfficeCtrl1 = document.getElementById("PageOfficeCtrl1");
         if (iIndex == 0) PageOfficeCtrl1.ShowRevisions = true;
         if (iIndex == 1) PageOfficeCtrl1.ShowRevisions = false;
     }
     function DoAcceptAll() {
         document.getElementById("PageOfficeCtrl1").AcceptAllRevisions();
     }
 </script> 
 

参数:
caption - 菜单项的标题。如果 caption 定义为 "-",表示此菜单项是菜单分隔线。
jsFunction - JavaScript 函数的名字。当用户点击当前菜单项时触发此 JavaScript 函数。
enabled - true: 菜单项可用。false: 禁用菜单项并显示灰色。
抛出:
java.lang.Exception

addCustomToolButton

public void addCustomToolButton(java.lang.String caption,
                                java.lang.String jsFunction,
                                int iconIndex)
                         throws java.lang.Exception
添加按钮到自定义工具栏。调用此方法为自定义工具栏添加每一个按钮。由开发人员自定义的 JavaScript 函数响应按钮的点击事件。

下面的示例展示如何使用 AddCustomToolButton 方法。

 poCtrl1.addCustomToolButton("保存", "SaveDocument()", 1);
 poCtrl1.addCustomToolButton("打印", "ShowPrintDlg()", 6);
 poCtrl1.addCustomToolButton("-", "", 0);
 poCtrl1.addCustomToolButton("全屏切换", "SwitchFullScreen()", 4);
 

然后在当前 JSP 页面里定义 JavaScript 函数。

 <script language="javascript" type="text/javascript">
     function SaveDocument() {
         document.getElementById("PageOfficeCtrl1").WebSave();
     }
     function ShowPrintDlg() {
         document.getElementById("PageOfficeCtrl1").ShowDialog(4); //打印对话框
     }
     function SwitchFullScreen() {
         document.getElementById("PageOfficeCtrl1").FullScreen = !document.getElementById("PageOfficeCtrl1").FullScreen;
     }
 </script> 
 

参数:
caption - 按钮的标题。如果 caption 定义为 "-",表示此按钮是分隔线。
jsFunction - JavaScript 函数的名字。当用户点击当前按钮时触发此 JavaScript 函数。
iconIndex - 按钮图标的索引。PageOffice 内置了若干图标,您可以选择使用其中的图标。默认值是 0。可用的图标索引如下:

自定义工具栏按钮图示

抛出:
java.lang.Exception

setWriter

public void setWriter(java.lang.Object writerObj)
               throws java.lang.Exception,
                      java.io.IOException
设置 PageOfficeCtrl 控件的数据对象。

如果您需要动态输出数据到Word文档或Excel表格里,您就必须创建com.zhuozhengsoft.pageoffice.wordwriter.WordDocument对象或com.zhuozhengsoft.pageoffice.excelwriter.Workbook对象,并且调用setWriter给PageOfficeCtrl控件设置数据对象。 您必须在调用 webOpen 方法之前调用 setWriter 方法。

writerObj 参数类型必须和 webOpen 方法打开的文档类型相匹配。 例如:如果 webOpen 方法打开的是Word文档,writerObj 参数必须是 com.zhuozhengsoft.pageoffice.wordwriter.WordDocument 对象。

下面的示例展示如何使用 setWriter 方法。

Word 示例代码:

 WordDocument doc = new WordDocument();
 DataRegion dataRegion = doc.openDataRegion("name");
 dataRegion.setValue("张三");
 poCtrl1.setWriter(doc); //数据对象是 com.zhuozhengsoft.pageoffice.wordwriter.WordDocument 对象。
 

Excel 示例代码:

 Workbook wb = new Workbook();
 Sheet sheetOrder = wb.openSheet("Order");
 sheetOrder.OpenCell("B5").setValue("张三");
 poCtrl1.setWriter(wb); //数据对象是 com.zhuozhengsoft.pageoffice.excelwriter.Workbook 对象。
 

参数:
writerObj - 数据对象。目前合法的数据对象有 com.zhuozhengsoft.pageoffice.wordwriter.WordDocumentcom.zhuozhengsoft.pageoffice.excelwriter.Workbook.
抛出:
java.lang.Exception
java.io.IOException

webOpen

public void webOpen(java.lang.String documentURL,
                    OpenModeType openMode,
                    java.lang.String userName)
             throws java.lang.Exception,
                    java.io.IOException
在线打开Office文档。

此方法是 PageOfficeCtrl 控件的重要方法,用来在线打开Office文档。

webOpen 方法一般放在PageOfficeCtrl调用代码末尾处调用。

示例:打开 test.doc 文档并把文档设置成可编辑状态。

 poCtrl1.setServerPage("poserver.do"); //必须
 //URL方式打开文档
 poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");
 //服务器磁盘路径方式打开文档
 poCtrl1.webOpen("D:\\documents\\test.doc", OpenModeType.docNormalEdit, "张三");
 

参数:
documentURL - 待打开文档的URL地址。

此文档既可以是来自Web服务器文件夹的文件,也可以是用服务器页面动态输出的文件二进制流。但是必须保证文档具有Office文件格式。

如果是网站文件夹内的文件,就使用URL;如果是网站文件夹外的文件,可以直接使用磁盘文件路径,例如:"D:\\documents\\test.doc"。

PageOffice 支持很多Office文档格式,例如 *.doc,*.docx,*.xls,*.xlsx,*.ppt,*.pptx,*.xml and *.rtf 等。

这里的URL可以是相对于当前页面的相对地址,也可以是http开头的绝对地址。相对URL可以是相对于当前页面的地址,也可以是以"/"开头的相对于整个Web应用程序根的地址。

注意:如果URL采用http开头的绝对地址,您必须确保这个地址和当前页面同属于一个网站。

openMode - 文档打开模式。请确保 openMode 与要打开的Office文档的文件格式保持一致。
userName - 操作当前文档的用户名。一般来说,userName 应该采用登录到您的Web项目的当前用户的名称。
抛出:
java.lang.Exception
java.io.IOException

webCreateNew

public void webCreateNew(java.lang.String userName,
                         DocumentVersion docVersion)
                  throws java.lang.Exception,
                         java.io.IOException
创建一个新文档并以普通编辑方式在线打开此文档。

如果您需要创建空文档并打开编辑,就调用 webCreateNew 方法。webCreateNew 方法一般放在PageOfficeCtrl调用代码末尾处调用。

在Web服务器上创建新文档和在客户机本地创建新文档有很大的不同。在Web服务器上创建新文档必须考虑到所有客户机上安装的不同版本的Office软件的兼容性。 为了保证新文档能够在所有客户机上都能顺利打开,您在调用 webCreateNew 方法时需要选择较低的 DocumentVersion

下面的示例展示如何使用 webCreateNew 方法创建一个Word2003格式的空文档。

Word 示例代码:

 poCtrl1.setServerPage("poserver.do"); //此行必须
 poCtrl1.setSaveFilePage("savefile.jsp?id=1&op=new");
 poCtrl1.webCreateNew("张三", DocumentVersion.Word2003);
 

参数:
userName - 操作当前文档的用户名。一般来说,UserName 应该采用登录到您的Web项目的当前用户的名称。
docVersion - 文档类型及文档格式版本。
抛出:
java.lang.Exception
java.io.IOException

wordCompare

public void wordCompare(java.lang.String documentURL,
                        java.lang.String documentURL2,
                        OpenModeType openMode,
                        java.lang.String userName)
                 throws java.lang.Exception,
                        java.io.IOException
在线比较两个不同版本的Word文档。

参数:
documentURL - 第一个Word文档。用法请参考webOpen方法。
documentURL2 - 第二个Word文档。用法请参考webOpen方法。
openMode - 文档打开模式。这里只有docAdmin和docReadOnly有效。docAdmin模式显示比较结果时,用户可以编辑比较结果。docReadOnly模式显示比较结果时,用户只能浏览比较结果。
userName - 操作当前文档的用户名。一般来说,userName 应该采用登录到您的Web项目的当前用户的名称。
抛出:
java.lang.Exception
java.io.IOException