下面我就简单的和大家分享一下如何实现Word文档的在线打开、编辑、保存和数据的提交。
第一步:请先安装PageOffice的服务器端的安装程序,之后在你的网站中根目录下添加pageoffice文件夹(在PageOffice官方网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice实例代码里的pageoffice文件夹拷贝到根目录下就可以了)。
第二步:在网站中创建动态页面Word.aspx。在工具箱中拖动一个PageOfficeCtrl控件到页面上(PageOfficeCtrl控件位于工具箱最下方),并设置控件所在层(<div></div>)的高和宽。
第三步:在要打开的Word文件中的相应位置手动插入书签(“PO_userName”、“PO_deptName”)。注意:书签名字不要重复、相邻书签之间至少要有一个字符,不然后一个书签会把前一个书签覆盖掉;书签的名字需以“PO_”为前缀。
第四步:Word.aspx.cs页面编写代码,打开Word文档。部分代码如下:
//设置服务器页面
PageOfficeCtrl1.ServerPage = "pageoffice/server.aspx";
//添加自定义按钮
PageOfficeCtrl1.AddCustomToolButton("保存", "Save()", 1);
PageOffice.WordWriter.WordDocument wordDoc = new PageOffice.WordWriter.WordDocument();
//打开数据区域,OpenDataRegion方法的参数代表Word文档中的书签名称
PageOffice.WordWriter.DataRegion dataRegion1 = wordDoc.OpenDataRegion("PO_userName");
//设置DataRegion的可编辑性
dataRegion1.Editing = true;
//为DataRegion赋值,此处的值可在页面中打开Word文档后在自己进行修改
dataRegion1.Value = "";
//设置字体颜色
dataRegion1.Font.Color = Color.Red;
PageOffice.WordWriter.DataRegion dataRegion2 = wordDoc.OpenDataRegion("PO_deptName");
dataRegion2.Editing = true;
dataRegion2.Value = "";
dataRegion2.Font.Color = Color.Red;
PageOfficeCtrl1.SetWriter(wordDoc);
//设置保存页面
PageOfficeCtrl1.SaveDataPage = "SaveData.aspx";
PageOfficeCtrl1.WebOpen("doc/test.doc", PageOffice.OpenModeType.docSubmitForm, "文档操作人姓名");
说明:若想提交数据需将属性OpenModeType的类型设置为docSubmitForm提交类型
在Word.aspx页面添加JS函数Save(),如下:
function SaveFile() {
document.getElementById("PageOfficeCtrl1").WebSave();
}
如上所述,简单的就实现了Word文档的在线打开并提交操作。接下来开始编写保存页面。
第四步:添加保存页面。在网站中添加动态页面SaveData.aspx,在后台页面中编写代码处理Word文档提交的数据,部分代码如下:
PageOffice.WordReader.WordDocument doc = new PageOffice.WordReader.WordDocument();
//获取提交的数值
PageOffice.WordReader.DataRegion dataUserName = doc.OpenDataRegion("PO_userName");
PageOffice.WordReader.DataRegion dataDeptName = doc.OpenDataRegion("PO_deptName");
doc.Close();
方案总结:
上述的示例主要是借助了PageOffice开发平台的PageOfficeCtrl控件,利用该控件还可实现Excel文档内容的提交、添加手写批注、加盖电子印章、Word文档到PDF文档的转换等功能。另外,在PageOffice平台下还可实现Excel、PPT、PDF等文档的在线打开、编辑保存等等各种操作,很好地解决了开发OA系统的程序员的一大技术难题。
来源:oschina
链接:https://my.oschina.net/u/1028508/blog/124639