精华内容
下载资源
问答
  • word简历在线编辑-vue

    2019-01-17 11:55:14
    技术栈: webpack ----打包神器 vue-cli ----快速构建项目 scss ----便利的css大法 element-ui ---- UI组件库 ...LeanCloud ---- 存储数据 html2canvas ---- HTML转成canvas jsPDF ---- 转成PDF
  • 本程序编写环境.NET 4.0、 VS2010,语言为C#,通过引用... [字段1:联系人] [字段2:联系电话] 根据检测出的字段编辑Word模板文件,添加相应字段的书签到模板文件,然后选择模板文件,最后批量生成Word文档到指定文件夹。
  • WPS word编辑图表数据的正确姿态

    千次阅读 2016-03-07 12:12:54
    前段时间用 WPS word 做图表,依次选择 插入|图表|柱状图,然后右键图表,选择编辑数据,接着弹出excel。 看到了吗,数据周围是有边框的,这时我们要删除系列1和系列2。 选择 CD 两列后右键,注意是清除内容...

    WPS 是跨平台的办公套件,这里就不多说了,下面开始讲故事。

    前段时间用 WPS word 做图表,依次选择 插入|图表|柱状图,然后右键图表,选择编辑数据,接着弹出excel。

    看到了吗,数据周围是有边框的,这时我们要删除系列1和系列2。

    选择 CD 两列后右键,注意是清除内容,不是上面的删除,如果选择删除整个图表的数据就无法编辑了。

    选择清除内容后边框还在的,而且边框是可以拖动的。

    这是选择删除的效果,边框没了,数据编辑就失效了。


    最后,本人也不清楚框框没了怎么恢复,望指教。

    展开全文
  • word中根据表头动态增加表格行,然后把数据数据中写入表格中。
  • 最新数据协议正式版数据使用协议WORD样篇可编辑.docx
  • 用我们自己指定的word模板,生成新的word,代码填写内容到新的word中,可以插入图片、插入文件、插入音频、视频,有不懂的可以联系我。运行已编译成功,希望大家学习。
  • 1、可将数据库数据(包括图片)自动填写到WORD文档中,生成报告; 2、可将数据库数据生成统计图表插入WORD文档中。 3、可将WORD文档分区编辑及签章; 4、可将WORD文档填写的内容提取到数据库;
  • VB.NET实现将数据导入WORD模板中,并生成新的WORD文档,需要在WORD中设置书签,用数据替换即可。可以将图片导入WORD,但是无法控制图片位置。
  • UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。 笔者使用Springmvc+mybatis+maven搭建,并实现插入图片...
  • PageOffice实现Word文档编辑区域控制

    千次阅读 2018-09-12 14:14:34
    PageOffice有一个功能就是操作数据区域,不但可以给文件中的数据区域(“PO_”开头的书签)赋值,还可以设置只读模式打开文件的时候哪些数据区域为可编辑模式。在打开文件之前先获取当前登录用户的权限...

    在某些情况下,业务需求需要实现不同的用户登录系统,打开同一个文件(不必同时打开),可以编辑的区域不一样,每个人都有属于自己的编辑区域。

    解决思路:

    利用PageOffice可以实现这样的效果。PageOffice有一个功能就是操作数据区域,不但可以给文件中的数据区域(“PO_”开头的书签)赋值,还可以设置只读模式打开文件的时候哪些数据区域为可编辑模式。在打开文件之前先获取当前登录用户的权限,然后根据这个用户的权限来设置这个用户打开文件之后,哪些数据区域是可以编辑的。

    实现方式:

    WordDocument doc = new WordDocument(); 
    DataRegion dr1 = doc.openDataRegion("PO_xx");
    dr1.Value = "张三"; //这句代码不是必须的
    dr1.Editing = true;  //允许这个数据区域编辑
    DataRegion dr2 = doc.openDataRegion("PO_yy");
    dr2.Value = docCause;
    dr2.Editing = false;  //禁止这个数据区域编辑
    ……
    poCtrl1.webOpen("doc/template.doc",OpenModeType.docSubmitForm, "张三");
    

    用提交模式打开文件,这样文件是只读的,只有设置了Editing=true的数据区域可以编辑。

    PageOffice中的概念“数据区域 (DataRegion)”:在PageOffice的概念里“PO_”开头的书签被称为数据区域(DataRegion),用“PO_”开头来命名书签只是为了防止和用户自己的书签有冲突。

    DataRegion属性中的其中两个属性是:

    • Value: 给数据区域赋值,举例:比方说word文件中有一个书签为:PO_Name,那么使用WordResponse对象给这个书签赋值:
    OpenDataRegion("PO_Name").Value = "XXX";
    
    • Editing: 设置这个数据区域是不是可以编辑。设置文件打开后书签PO_Name所在的位置可编辑:
    OpenDataRegion("PO_Name").Editing = true;
    

    这个Editing属性是这次使用的重点,实现不同的人编辑word文档中不同的编辑区域的关键是利用word中的书签去标记编辑区域(数据区域),然后用数据区域的Editing属性去控制这个区域是不是可以编辑。

    展开全文
  • 而在开发的过程中,也遇到了比较常见的文件导出问题–以固定格式将数据存储在word、excel等office文件格式中。 在网上搜索了许多方法,了解到要导出word文件,其实办法由很多,如jacob,java2word,FreeMarker,Apatch ...

    暑期在杭州实习了两个月,主要是使用vue+SpringMVC进行一个网页开发。
    而在开发的过程中,也遇到了比较常见的文件导出问题–以固定格式将数据存储在word、excel等office文件格式中
    在网上搜索了许多方法,了解到要导出word文件,其实办法由很多,如jacob,java2word,FreeMarker,Apatch POI等等。
    本文采用的是Apatch POI中的一系列API,它可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。原则意义上来讲,POI更适合excel文件格式的导出,格式固定且代码简单。

    而在使用POI操作word文档时,比较麻烦的一点是.doc文件和.docx文件是不同的,也就是说,需要使用不同的API来操作.doc文件和.docx文件。

    一、.doc文件:使用HWPFDocument

    1)模板文件

    新建word模板文件,并在word文件中设置【标签】。

    • 普通数据:一般标签以 ${变量名} 的格式命名,其中 $ 和 {} 一定是英文符号,如 ${project} , ${time}。注意标签名不要重复
    • 表格文件:由于表格数据是由多组相同格式的数据组成,在计算机语言中,及由数组组成。其与普通数据不同,无需设置标签,只需要在word文件中新建空白表格,并设置表头即可,系统可以根据相应单元格的位置对表格数据进行设置。
      在这里插入图片描述
      模板文件编辑完成之后,记得将模板文件放在项目中。本项目放在了template文件夹中,当然,放在哪里,在代码中就要使用相应的路径来获取相应的模板文件。
      在这里插入图片描述

    2)文件导出

    在第一步中已经使用 ${} 的格式对标签进行了设置,那么在代码中,我们只需要使用给相应的标签设置值即可。具体代码如下:

    public boolean Export2GeotechnicalLayeringTable(Map<String, Object> map_data,ArrayList<Map<String, String>> list_data,String templatePath,OutputStream out) {
    		boolean result = false;
    		FileInputStream in = null;
    		HWPFDocument document = null;
    		try {
    			in = new FileInputStream(templatePath);
    			document = new HWPFDocument(in);
    			Range range = document.getRange();
    			range.replaceText("${project_id}", map_data.get("project_id").toString());  //
    			range.replaceText("${project_name}", map_data.get("project_name").toString());  //
    			range.replaceText("${depth}", map_data.get("depth").toString());  //
    			range.replaceText("${hole_id}", map_data.get("hole_id").toString());  //
    			range.replaceText("${hole_altitude}", map_data.get("hole_altitude").toString());  //
    			range.replaceText("${hole_mileage}", map_data.get("hole_mileage").toString());  //
    			range.replaceText("${endhole_depth}", map_data.get("endhole_depth").toString());  //
    			//写入表格数据
    			//遍历range范围内的table。
    			TableIterator tableIter = new TableIterator(range);  
    		     Table table;  
    		     TableRow row;  
    		     while (tableIter.hasNext()) {  
    		        table = tableIter.next();
    		        int rowNum = table.numRows();  
    		        for (int i=0, j=2; i<list_data.size()&&j<rowNum; i++,j++) {  
    		           row = table.getRow(j); 
    		           row.getCell(0).insertBefore(list_data.get(i).get("layer_id"));
    		           row.getCell(1).insertBefore(list_data.get(i).get("start_depth"));
    		           row.getCell(2).insertBefore(list_data.get(i).get("end_depth"));
    		           row.getCell(3).insertBefore(list_data.get(i).get("geotechnical_name"));
    		           row.getCell(4).insertBefore(list_data.get(i).get("geotechnical_description"));
    		           row.getCell(5).insertBefore(list_data.get(i).get("sample_id"));
    		           row.getCell(6).insertBefore(list_data.get(i).get("sample_depth"));
    		        }  
    		     }  
    			document.write(out);
    			out.close();
    		}catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return result;
    	}
    

    其中map_data中存储的是普通数据,而list_data中存储的是要生成word表格的数组数据。
    由于代码都是较简单的java代码,这里不做解释。
    代码封装好之后,进行单元测试:

    public void testTestWord() throws FileNotFoundException {
    		WordUtils wordUtils = new WordUtils();
    		String templatePath = "D:\\Program Files\\eclipse\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\ZJICInformationManagement\\"+"template/钻孔岩土分层表模板.doc";
    		Map<String, Object> map_data = new HashMap<>();
    		map_data.put("project_id", "2019.21");
    		map_data.put("project_name", "ZJIC");
    		map_data.put("depth", "10.22");
    		map_data.put("hole_id", "ZKS12");
    		map_data.put("hole_altitude", "100");
    		map_data.put("hole_mileage", "23.21");
    		map_data.put("endhole_depth", "43");
    		ArrayList<Map<String, String>> list_data = new ArrayList<>();
    		Map<String, String> temp = new HashMap<>();
    		for(int i=0;i<10;i++){
    			temp = new HashMap<>();
    			temp.put("layer_id", i+"");
    			temp.put("start_depth", "start_depth");
    			temp.put("end_depth", "end_depth");
    			temp.put("geotechnical_name", "geotechnical_name");
    			temp.put("geotechnical_description", "geotechnical_description");
    			temp.put("sample_id", "sample_id");
    			temp.put("sample_depth", "sample_depth");
    			list_data.add(temp);
    		}
    		File file = new File("d:\\word\\test.doc");
    		FileOutputStream out = new FileOutputStream(file);
    		wordUtils.Export2GeotechnicalLayeringTable(map_data, list_data, templatePath, out);
    	}
    

    最后生成的文件路径为:d:\word\test.doc。

    二、.docx文件:使用XWPFDocument

    遇到的巨大的坑!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    XWPFDocument比HWPFDocument灵活,但是在生成word文件过程中,对于普通的数据,前者与后者一样,同样通过设置标签来进行导出。但是操作标签的方式不同,XWPFDocument可以读取段落中的所有字符,然后通过XWPFRun(文本对象),使用正则表达式对文本中的标签进行提取,然后设置标签的值…但是在获取标签(正则表达式匹配)的过程中,总是出现中断。如${project},系统会将该标签分为两个字符串 ${ 和 project} ,导致无法与正则表达式匹配,系统判断该段文本并不是标签,导致判断错误。

    暂时未找到该问题的解决办法。网上说是因为使用了中文的括号 {。需要将标签先使用文本编辑器–记事本等编辑之后,再复制粘贴到word文档中,本人亲测之后,问题未得到解决。

    三、结果展示

    在这里插入图片描述

    展开全文
  • 分享一个在线Word编辑的jQuery插件

    千次阅读 2018-07-21 12:05:51
    Word编辑进行文档处理的功能,这里我开发了一个在线Word编辑插件并且以此为例。   1. NTKO Word在线编辑器介绍: NTKO的官方网站: http://www.ntko.com/ NTKO OFFICE文档控件是拥有完全自主知识产权的...
    原文地址为:
    分享一个在线Word编辑的jQuery插件
    

    在做OA或者工作流程的网站中,常常能够看到一些在线Word编辑进行文档处理的功能,这里我开发了一个在线Word编辑插件并且以此为例。

     

    1.NTKO Word在线编辑器介绍:

    NTKO的官方网站:http://www.ntko.com/
    NTKO OFFICE文档控件是拥有完全自主知识产权的ActiveX控件。使用NTKO Office文档控件,能够在浏览器中直接编辑Word,Excel等Office文档,或者WPS,金山电子表等文档并保存到web服务器。实现文档和电子表格的统一管理。NTKO OFFICE文档控件具有在线编辑,痕迹保留,手写签名,模板套红,安全电子印章[企业版提供],全屏批注,保存为HTML,MHT,PDF文件等办公自动化系统必备的功能。可以运行在PHP,ASP,JSP,C#,VB.NET,DOMINO等各种web编程语言和服务器。

     

    2.列出完整的jQuery插件的代码清单:

    961ddebeb323a10fe0623af514929fc1.jpe jquery.ntko.js
    /*   @author: Leepy
     *  @date:  2010-12
     *  @descript:  ntko word编辑器JQ插件
     
    */  
    (
        
    function ($) {
            $.ntko 
    =  $.ntko  ||  {};

            $.fn.extend(
            {
                
    // 文件类型
                fileType: {
                    Word: 
    " Word.Document " ,
                    Excel: 
    " Excel.Sheet " ,
                    PowerPoint: 
    " PowerPoint.Show "
                },
                
    // 弹出窗类型
                showDialogType: {
                    New: 
    0 ,
                    Open: 
    1 ,
                    Save: 
    2 ,
                    SaveCopy: 
    3 ,
                    Print: 
    4 ,
                    PageSetup: 
    5 ,
                    Properties: 
    6
                },
                
    // Word信息内容
                wordInfo: {
                    Start: 
    0 ,
                    End: 
    0 ,
                    Text: 
    " NDOFramer "
                },
                
    // 表单设置
                formSettings: {
                    UploadFileId: 
    " EDITFILE " ,
                    Data: 
    " savetype=1&fileType= " ,
                    FileName: 
    " demo.doc " ,
                    FormId: 
    0
                },
                _doc: 
    null ,
                _selection: 
    null ,
                _range: 
    null ,
                
    // 初始化插件
                ntko:  function (parameters) {
                    parameters 
    =  parameters  ||  {};
                    
    var  ndObj  =   null ;
                    
    this .each( function (i) {
                        ndObj 
    =  $.ntko.init( this , parameters);
                    });
                    
    return  ndObj;
                },
                
    // 关闭插件
                close:  function () {
                    
    this [ 0 ].close();
                },
                
    // 打开文档
                open:  function (url) {
                    
    this [ 0 ].BeginOpenFromURL(url);    // 第二个参数为只读设置
                },
                
    // 新建Word文档
                newWord:  function () {
                    
    this [ 0 ].CreateNew( this .fileType.Word);
                },
                
    // 新建Excel文档
                newExcel:  function () {
                    
    this [ 0 ].CreateNew( this .fileType.Excel);
                },
                
    // 新建PowerPoint文档
                newPowerPoint:  function () {
                    
    this [ 0 ].CreateNew( this .fileType.PowerPoint);
                },
                
    // 打开本地文档
                openLocalFile:  function () {
                    
    this [ 0 ].showdialog( this .showDialogType.Open);
                },
                
    // 保存到本地
                saveLocalFile:  function () {
                    
    this [ 0 ].ActiveDocument.Application.Dialogs( 83 ).Show()
                },
                
    // 保存文档,返回是否保存成功
                save:  function (url, parameters) {

                    
    if  ( typeof  (parameters.formId)  !==   " undefined " )
                        
    this .formSettings.FormId  =  parameters.formId;
                    
    if  ( typeof  (parameters.data)  !==   " undefined " )
                        
    this .formSettings.Data  =  parameters.data;

                    
    var  retHTML  =   this [ 0 ].saveToURL(url,     // 提交到的url地址
                         this .formSettings.UploadFileId,      // 文件域的id,类似<input type=file id=upLoadFile 中的id
                         this .formSettings.Data,              // 与控件一起提交的参数,savetype参数为要保存的文件格式office,html,pdf。filetype参数保存文件类型
                         this .formSettings.FileName,          // 上传文件的名称,类似<input type=file 的value
                         this .formSettings.FormId             // 与控件一起提交的表单id,也可以是form的序列号,这里应该是0.
                    );
                    
    return  retHTML;
                },
                
    // 下载远程文件
                downloadFile:  function (url, localPath) {
                    
    this [ 0 ].DownloadFile(url, localPath);
                },
                
    // 插入本地文档
                insertLocalFile:  function () {
                    
    this [ 0 ].ActiveDocument.Application.Dialogs( 164 ).Show();
                },
                
    // 插入文档
                insertFile:  function (url) {
                    
    this ._doc  =   this [ 0 ].ActiveDocument;
                    
    this ._doc.Activate();
                    
    //                 this._doc.Select();
                     //                 this._doc.Application.Selection.Select();

                    
    this [ 0 ].AddTemplateFromURL(url);
                },
                
    // 插入本地图片
                insertLocalImage:  function () {
                    
    this [ 0 ].ActiveDocument.Application.Dialogs( 163 ).Show();
                },
                
    // 插入图片
                insertImage:  function (url, type) {
                    
    this [ 0 ].InsertFile(url, type  +   8 );
                },
                
    // 插入文本
                insertText:  function (text) {
                    
    this ._doc  =   this [ 0 ].ActiveDocument;
                    
    this ._doc.Activate();
                    
    this ._doc.Application.Selection.InsertAfter(text);
                },
                
    // 页面设置
                setPageSetup:  function () {
                    
    this [ 0 ].showdialog( this .showDialogType.PageSetup);
                },
                
    // 文档属性设置
                setProperty:  function () {
                    
    this [ 0 ].showdialog( this .showDialogType.Properties);
                },
                
    // 打印
                print:  function () {
                    
    //                 this[0].PrintOut();
                     this [ 0 ].showdialog( this .showDialogType.Print);
                },
                
    // 打印预览
                printPreview:  function () {
                    
    this [ 0 ].PrintPreview();
                },
                
    // 关闭打印预览
                printExit:  function () {
                    
    this [ 0 ].PrintPreviewExit();
                },
                
    // 隐藏工具栏
                hideToolbar:  function () {
                    
    this [ 0 ].Activate( false );
                    
    this [ 0 ].Toolbars  =   false ;
                },
                
    // 显示工具栏
                showToolbar:  function () {
                    
    this [ 0 ].Activate( false );
                    
    this [ 0 ].Toolbars  =   true ;
                },
                
    // 隐藏菜单栏
                hideMenubar:  function () {
                    
    this [ 0 ].Activate( false );
                    
    this [ 0 ].Menubar  =   false ;
                },
                
    // 显示菜单栏
                showMenubar:  function () {
                    
    this [ 0 ].Activate( false );
                    
    this [ 0 ].Menubar  =   true ;
                },
                
    // 获取或设置窗口高度
                height:  function (arg) {
                    
    if  ( typeof  (arg)  !==   " undefined " ) {
                        
    this .css( " height " ,arg);
                    }
                    
    else  {
                        
    return   this .css( " height " ); ;
                    }
                },
                
    // 获取或设置窗口宽度
                width:  function (arg) {
                    
    if  ( typeof  (arg)  !==   " undefined " ) {
                        
    this .css( " width " , arg);
                    }
                    
    else  {
                        
    return   this .css( " width " ); ;
                    }
                },
                
    // 删除本地路径,如c:\\1.doc
                deleteLocalFile:  function (localPath) {
                    
    this [ 0 ].DeleteLocalFile(localPath);
                },
                showView: 
    function (showViewType) {
                    
    this [ 0 ].Activate( false );
                    
    this [ 0 ].ActiveDocument.ActiveWindow.View  =  showViewType;
                },
                
    // 添加本地附加文件
                 //             addLocalFile: function(fileID,locaPath) {
                 //                 this[0].HttpAddPostFile(fileID, locaPath);
                 //             },
                 //             hostName: function() {
                 //                 return this[0].HostName;
                 //             },
                 //             documentFullName: function() {
                 //                 return this[0].DocumentFullName;
                 //             },
                 //             caption: function() {
                 //                 return this[0].Caption;
                 //             },
                 //             track: function() {
                 //                 this[0].SetCurrUserName("liping");
                 //                 this[0].SetTrackRevisions(1);
                 //             },
                 //             showTrack: function() {
                 //                 this[0].ShowRevisions(1);
                 //                 this[0].ShowView(0);
                 //             },
                 // 是否只读
                isReadOnly:  function () {
                    
    return   this [ 0 ].IsReadOnly;
                },
                
    // 文档是否已做修改
                isDirty:  function () {
                    
    return   ! this [ 0 ].ActiveDocument.Saved;
                },
                
    // 获取文档所有内容,返回该Word文档内容Json
                range:  function () {
                    
    this ._doc  =   this [ 0 ].ActiveDocument;
                    
    this ._doc.Activate();
                    
    this ._range  =   this ._doc.Range();

                    
    this .wordInfo.Start  =   this ._range.Start;
                    
    this .wordInfo.End  =   this ._range.End;
                    
    this .wordInfo.Text  =   this ._doc.Range( this ._range.Start,  this ._range.End).Text;

                    
    return   this .wordInfo;
                },
                
    // 选中文档所有内容,返回该Word文档内容Json
                select:  function () {
                    
    this ._doc  =   this [ 0 ].ActiveDocument;
                    
    this ._doc.Activate();
                    
    this ._doc.Select();
                    
    this ._selection  =   this ._doc.Application.Selection;

                    
    this .wordInfo.Start  =   this ._selection.Start;
                    
    this .wordInfo.End  =   this ._selection.End;
                    
    this .wordInfo.Text  =   this ._doc.Range( this ._selection.Start,  this ._selection.End).Text;

                    
    return   this .wordInfo;
                },
                
    // 取消选中内容
                unselect:  function () {
                    
    if  ( this ._selection  !=   null ) {
                        
    this ._selection.Start  =   0 ;
                        
    this ._selection.End  =   0 ;
                        
    this ._selection  =   null ;
                    }
                },
                replace: 
    function (text, start, end) {

                    
    //                 alert(this._doc.Range(start,end).Text);
                     this ._doc.Range(start, end).Text  =  text;
                    
    //                 alert(this._doc.range(this.wordInfo.Starti,this.wordInfo.End).Text);
                },
                
    // 清除文本
                clear:  function () {
                    
    var  wordDoc  =   this [ 0 ].ActiveDocument;
                    wordDoc.Activate();
                    wordDoc.Select();
                    
    var  wordSelection  =  wordDoc.Application.Selection;
                    wordDoc.Range(wordSelection.Start, wordSelection.End).Text 
    =   "" ;
                }
            });

            $.extend($.ntko,
                {
                    settings:
                    {
                        folder: 
    "" ,
                        width: 
    " 700px " ,
                        height: 
    " 500px " ,
                        id: 
    " OFRAMER_ "   +   new  Date().getTime(),
                        isToolbar: 
    true ,
                        isMenubar: 
    true ,
                        failed: 
    function () { }
                    },
                    init: 
    function (obj, parameters) {
                        
    // 赋值参数
                         if  ( typeof  (parameters.folder)  !==   " undefined " )
                            
    this .settings.folder  =  parameters.folder;
                        
    if  ( typeof  (parameters.width)  !==   " undefined " )
                            
    this .settings.width  =  parameters.width;
                        
    if  ( typeof  (parameters.height)  !==   " undefined " )
                            
    this .settings.height  =  parameters.height;
                        
    if  ( typeof  (parameters.id)  !==   " undefined " )
                            
    this .settings.id  =  parameters.id;
                        
    if  ( typeof  (parameters.isToolbar)  !==   " undefined " )
                            
    this .settings.isToolbar  =  parameters.isToolbar;
                        
    if  ( typeof  (parameters.isMenubar)  !==   " undefined " )
                            
    this .settings.isMenubar  =  parameters.isMenubar;
                        
    if  ( typeof  (parameters.failed)  !==   " undefined " )
                            
    this .settings.failed  =  parameters.failed  ||  {};

                        
    // 构造插件Html
                         this ._createHTML(obj);

                        
    var  acxId  =   this .settings.id;
                        
    var  acxJQjery  =   null ;
                        
    var  failed  =   this .settings.failed;


                        
    // 判断是否安装了word编辑器插件
                         try  {

                            document.getElementById(acxId).Close();
                            acxJQjery 
    =  $( " # "   +  acxId);
                        }
                        
    catch  (e) {
                            failed(e);
                        }

                        
    return  acxJQjery;
                    },
                    
    // 构造插件Html
                    _createHTML:  function (obj) {
                        $(obj).html(
                            
    this ._stringFormat( " <object classid=\ " clsid:A39F1330 - 3322 - 4a1d - 9BF0 - 0BA2BB90E970\ "  codebase=\ " { 0 } / officecontrol.cab#version=5,0,0,6\"" +
                             " id=\ " { 1 }\ "  width=\ " { 2 }\ "  height=\ " { 3 }\ " > "   +
                            
    " <param name=\ " wmode\ "  value=\ " transparent\ " > "   +
                            
    " <param name=\ " _ExtentX\ "  value=\ " 16960 \ " > "   +
                            
    " <param name=\ " _ExtentY\ "  value=\ " 13600 \ " > "   +
                            
    " <param name=\ " BorderColor\ "  value=\ " - 2147483632 \ " > "   +
                            
    " <param name=\ " BackColor\ "  value=\ " - 2147483643 \ " > "   +
                            
    " <param name=\ " ForeColor\ "  value=\ " - 2147483640 \ " > "   +
                            
    " <param name=\ " TitlebarColor\ "  value=\ " - 2147483635 \ " > "   +
                            
    " <param name=\ " TitlebarTextColor\ "  value=\ " - 2147483634 \ " > "   +
                            
    " <param name=\ " BorderStyle\ "  value=\ " 0 \ " > "   +
                            
    " <param name=\ " Titlebar\ "  value=\ " 0 \ " > "   +
                            
    " <param name=\ " Statusbar\ "  value=\ " 0 \ " > "   +
                            
    " <param name=\ " Toolbars\ "  value=\ " { 4 }\ " > "   +
                            
    " <param name=\ " Menubar\ "  value=\ " { 5 }\ " > "   +
                            
    " <param name=\ " _ExtentX\ "  VALUE=\ " 18071 \ " > "   +
                            
    " <param name=\ " _ExtentY\ "  VALUE=\ " 20981 \ " > "   +
                            
    " <param name=\ " IsShowToolMenu\ "  VALUE=\ " 1 \ " > "   +
                            
    " <param name=\ " IsNoCopy\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " IsHiddenOpenURL\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " MaxUploadSize\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " FileNew\ "  VALUE=\ " - 1 \ " > "   +
                            
    " <param name=\ " FileOpen\ "  VALUE=\ " - 1 \ " > "   +
                            
    " <param name=\ " FileClose\ "  VALUE=\ " - 1 \ " > "   +
                            
    " <param name=\ " FileSave\ "  VALUE=\ " - 1 \ " > "   +
                            
    " <param name=\ " FileSaveAs\ "  VALUE=\ " - 1 \ " > "   +
                            
    " <param name=\ " FilePrint\ "  VALUE=\ " - 1 \ " > "   +
                            
    " <param name=\ " FilePrintPreview\ "  VALUE=\ " - 1 \ " > "   +
                            
    " <param name=\ " FilePageSetup\ "  VALUE=\ " - 1 \ " > "   +
                            
    " <param name=\ " FileProperties\ "  VALUE=\ " - 1 \ " > "   +
                            
    " <param name=\ " IsStrictNoCopy\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " IsUseUTF8URL\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " MenubarColor\ "  VALUE=\ " - 2147483643 \ " > "   +
                            
    " <param name=\ " IsUseControlAgent\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " IsUseUTF8Data\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " IsSaveDocExtention\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " IsDirectConnect\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " SignCursorType\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " IsResetToolbarsOnOpen\ "  VALUE=\ " 0 \ " > "   +
                            
    " <param name=\ " IsSaveDataIfHasVDS\ "  VALUE=\ " 0 \ " > "   +
                            
    " </object> " ,
                            
    this .settings.folder,
                            
    this .settings.id,
                            
    this .settings.width,
                            
    this .settings.height,
                            
    this .settings.isToolbar  +   ""   ==   " true "   ?   " 1 "  :  " 0 " ,
                            
    this .settings.isMenubar  +   ""   ==   " true "   ?   " 1 "  :  " 0 "
                            ));
                    },
                    
    // string格式化构造器
                    _stringFormat:  function (str) {
                        
    var  args  =  arguments;
                        
    return  str.replace( / \{(\d+)\} / g,
                            
    function (m, i) {
                                
    return  args[parseInt(i)  +   1 ];
                            });
                    }
                }
            );
        }
    )(jQuery);

     

    3.这里要注意几个问题,首先在保存文档到远程服务器的时候,可以使用aspx页面或者ashx页面去处理。

    具体调用的代码:jqObj.save("process.aspx?action=test&data=demo", { formId: "formeditor" });
    可以发现我这里有个formId的参数,这个是因为我必须把Word插件必须放在Form标签中,这样在POST数据,也就是文件流的时候有用。
    而在process.aspx页面中,的具体代码实现为:

    961ddebeb323a10fe0623af514929fc1.jpe 代码
         protected   void  Page_Load( object  sender, EventArgs e)
        {
            Response.ContentEncoding 
    =  Encoding.GetEncoding( " GB2312 " );
            
    string  action  =  Request.QueryString[ " action " ??   "" ;
            
    switch  (action)
            {
                
    case   " test " :
                    Test();     
    // 测试保存数据
                     break ;
            }
        }

        
    private   void  Test()
        {
            
    string  data  =  Request.QueryString[ " data " ??   "" ;
            HttpFileCollection files 
    =  Request.Files;
            
    try
            {
                
    if  (files.Count  >   0 )
                {
                    HttpPostedFile file 
    =  files[ 0 ];

                    
    string  fileName  =  Server.MapPath(String.Format( " ~/output/{0}_{1}.doc " , data, Guid.NewGuid()));

                    file.SaveAs(fileName);

                    Response.Write(String.Format(
    " 保存附件“{0}”成功!\r\n返回测试数据:{1} " , fileName, data));
                }
            }
            
    catch
            {
                Response.Write(
    " 有异常 " );
            }
        }

    其中,一定要记得写Response.ContentEncoding = Encoding.GetEncoding("GB2312");这段代码,如果没有写,返回的中文会出现乱码的情况。我们通过HttpFileCollection files = Request.Files;方式可以取得一个POST文件流。

    在第一次使用该插件的时候,首先必须进行安装,您可以通过下载一个Word编辑器插件安装包.rar包,来安装插件,包里面包含相关的批处理操作,大家自己可以试试。

    下面演示下DEMO(保存操作大家可以下代码下来看看吧)

     

    Word编辑器插件显示区域
    初始化插件新建文档打开本地文档打开指定文档保存文档到本地保存文档到Web显示工具栏隐藏工具栏显示普通视图显示页面视图设置窗口高度获取窗口高度设置窗口宽度获取窗口宽度插入指定文本插入本地图片插入本地文档清空文本

    jqObj = $("#WordEditor").ntko(
    {
    folder: "Scripts/",
    id: "WordEditorControl",//命名ActiveX对象ID
    isToolbar: false,//是否显示工具栏
    isMenubar: false,//是否显示菜单栏
    width: "710px",
    height: "600px"
    });
    (注:这里 WordEditor 为插件容器的ID)
    jqObj.newWord();
    jqObj.openLocalFile();
    jqObj.open("template/demo.doc");
    (注:url可以用 .aspx, .ashx 来替代,采用文件流读取的方式)
    jqObj.saveLocalFile();
    var result = jqObj.save("process.aspx?action=test&data=demo", { formId: "formeditor" });
    (注:其中formId为form的ID)
    jqObj.showToolbar();
    jqObj.hideToolbar();
    jqObj.showView(1);
    jqObj.showView(3);
    jqObj.height("800");
    jqObj.height();
    jqObj.width("1000");
    jqObj.width();
    jqObj.insertText("O(∩_∩)O哈哈哈~");
    jqObj.insertLocalImage();
    jqObj.insertLocalFile();
    jqObj.clear();
    源代码下载: OnlineWordEditorDemo.rar

    转载请注明本文地址: 分享一个在线Word编辑的jQuery插件
    展开全文
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
    不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类,如下图所示,编辑器也会提示错误信息: 14. 接口和抽象类有什么区别? 实现:抽象类...
  • 很不错的vc对word操作代码,可以自动生成word表格,并导入数据、合并单元格、编辑眉页等。
  • Word VBA中读取Excel表格中的数据

    千次阅读 2020-10-30 09:14:13
    word文档中,编辑好一个示例表格,作为一个母表,后续所有的表格程序都是复制这张表,然后修改复制后的新表格的数据 打开Excel,遍历每一行数据 取这一行关键数据,复制母表,改变复制后的表格数据 代码片段 Dim wb...
  • word(2010)宏使用-批量提取word数据

    千次阅读 2020-06-22 14:59:38
    word 2010 宏的使用Word中对宏的定义Word宏的优缺点Word宏运用实例---批量提取word数据结语 Word中对宏的定义 Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常...
  • 在生成的word里面能够看到图片占了位置,可是图片内容却显示不出来,我做了测试,我把之前图片转码成base64位的数据拿出来之后,再通过转码能够生成图片,就是在word文档里面显示不出来。不知道这是什么原因。还有...
  • Vue 自定义富文本编辑器 tinymce 支持导入 word 模板

    万次阅读 热门讨论 2018-09-13 10:03:10
    自定义富文本编辑器分为前端项目和后端项目两个部分,首先先说一下前端项目 前端 前端项目地址: https://github.com/haoxiaoyong1014/editor-ui 编辑器名称: tinymce 前端采用的 vue.js 至于Vue 中怎么集成 ...
  • java导出数据word文档中

    万次阅读 热门讨论 2018-04-12 08:56:01
    新建word模板,凡是需要填充的数据用${xxxx},编辑word文档后,另存为word文档的(*.xml),命名为word.xml(名字不可更改) (2).在web项目中webroot目录下新建template文件夹,并将word.xml文件放到templat...
  • Android 将数据写入到word

    千次阅读 2016-12-20 23:30:09
     2、在开发之前需要对word模板进行一些编辑,在需要写入数据的地方加入 $变量名$,效果图如下       3、在清单文件中加入对应的权限,同时也要注意在Android 6.0 时要动态申请sd卡的读写权限...
  • 1.ftl文件介绍 ftl是Freemarker模板的文件后缀名 FreeMarker其实是一种...FreeMarker大致的工作方式是,网页模板里面嵌入了数据模型中的数据、FreeMarker自定义流程控制语言、FreeMarker自定义的操作函数等等,在...
  • 这个文件是接着上一个,深化了一些,可以从excel中读出数据,写到word的格式化好的表格中。可以帮助大家好好的利用代码操作word,生成的word文档保存在d盘根目录下 文章介绍: ...
  • wpf的word操作

    2014-09-02 14:40:44
    因为之前为一家银行做财政报表打印,因为数据太长,381的纸张打印不下,dos打印、rdlc等等试了都很麻烦,所以后面就将内容插入word中,再在代码中写一些控制模板的代码,使得可以再381上打印下,这是个测试的demo
  • poi导出word2003 动态数据 生成word能再次poi导入
  • 在一些的项目开发中,会有一些生成Word文件的操作,比如将获取到的一些数据添加到Word模板当中的相应的位置生成一份Word文档。 由于最近的Python项目当中需要将一些从服务器查出的数据添加到Word模板当中生成一份...
  • 1、 首先,需要新建一个word文档,在里面编好你想要的样式,需要加入数据的地方用占位符表示,如name,需要加入图片的地方随便插一张图片就行了,富文本编辑器的地方也用占位符表示,如${content}(这里我存的nr)...
  • 关于用java编写生成word文档,动态添加数据word文档的一些心得,经过翻阅了无数的有用的和无用的资料以后,总算找到了一种靠谱的方法1.概述经过反反复复的查阅资料,总算找到了一个靠谱的生成word的方案,这里分享...
  • 当我们在文档中记录大量文字信息数据的时候,为了防止内容信息被其它人操作篡改,我们想要把文档的编辑状态限制一下,别人就无法对我们的文档内容进行编辑了,我们可以在Word中进行设置,下面我们一起来看下如何将...
  • 使用的是PageOffice,除了提供Word/Excel动态数据填充,格式控制,Word/Excel用户输入提交,Word/Excel/PowerPoint/WPS等Office文档的在线打开、只读浏览、编辑、保存等功能外,还给在线协同办公内置了强大的支持...
  • 这两天一直在实现这样一个功能,即从数据库及其他数据源中获取相关数据,填充到一定的word模板中,然后将该模板下载下来(主要就是为了以简单的方式让老师看到他想看的系统中不同功能不同位置地方的数据) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 94,104
精华内容 37,641
关键字:

word无法编辑数据