`
bobo888odod
  • 浏览: 827 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Javascript实现word文件套打支持多表格

阅读更多

        最近手头的一个Web项目要求能在浏览器中查看制作好的公文信息,起初想做成百度文库那个样子的,但是时间比较紧就放弃了。但是心没放弃,我课余时间正在写demo,不着急的小伙伴等等,等我有空了会有福利的。谁让我这么有钱的。

        对于套打我的解决思路是通过替换word文档中的书签来实现,搜索了N久感觉在kimmking的js实现web上的word凭据套打基础之上作修改可以减少不少时间,于是乎就解决了最基本的问题。

        但是在开发过程中发现简单的Form类型的数据填充不能完全满足要求,因为某些文件中要求Table类型的数据,傻眼了,更有甚者包含两个及以上的Table类型数据,这下歇菜了。看着已经被花费的时间硬着头皮debugger看接口,终于解决了只有一个Table,然后就是两个Table,然后就没有然后了。

        总觉得来而不往非礼也,今天项目终于上线了,扣了其中一段代码出来。写得很乱,以后有空再优化吧,或许没有问题就永远不动她了。

// 打开文件
function openfile(filename) {
	oframe.Open(filename);
}

// 更新域对象,向模板中插入数据
function updateForm(datas) {
	if (datas) {
		var formData = datas.form;
		var grids = datas.grids;
		var formFields = oframe.ActiveDocument.FormFields;
		var fields = [];
		for (var i = formFields.count - 1; i >= 0; i--) {
			var item = formFields.Item(i + 1);
			fields[item.Name] = item;
		}
		var formFieldsInForm = [];
		for (var field in formData) {
			formFieldsInForm[formFieldsInForm.length] = fields[field];
		}
		if (formFieldsInForm.length > 0) {
			// 填充FORM(表单)型数据
			for (var i = formFieldsInForm.length - 1; i >= 0; i--) {
				var item = formFieldsInForm[i];
				var data = formData[item.Name];
				if (data) {
					if (data.length < 250) {
						item.Result = data;
					} else {
						var range = item.Range;
						item.Result = " ";
						range.InsertBefore(data);
					}
				}

			}
		}
		if (grids) {
			for (var i = 0; i < grids.length; i++) {
				var formFieldsInGrid = [];
				var grid = grids[i];
				if (grid.length > 0)
					var gridFields = grid[0];
				else
					continue;
				for (var field in gridFields) {
					formFieldsInGrid[formFieldsInGrid.length] = fields[field];
				}
				if (formFieldsInGrid.length > 0) {
					// 填充GRID(表格)型数据
					for (var j = grid.length - 1; j >= 0; j--) {
						for (var k = formFieldsInGrid.length - 1; k >= 0; k--) {
							var item = formFieldsInGrid[k];
							var data = grid[j][item.Name];
							if (data)
								if (data.length < 250) {
									item.Result = data;
								} else {
									//对于大字段的处理
									var range = item.Range;
									item.Result = " ";
									range.InsertBefore(data);
								}
						};
						if (j != 0) {
							var range = item.Range.Rows.Item(1).Range;
							range.Select();
							range.Copy();
							range.Paste();
						}

					}
				}
			}
		}
		/** ******************************** */
		/* 设置文档只读 */
		/** ******************************** */
		oframe.ActiveDocument.Protect(3);
		datas.isprotect = true;
	}

}

 

 最后教大家一个绝技,打开附件中的word文档按Alt+F9有惊喜哦。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    javaScript导出word和excel例子

    这个库允许JavaScript生成PDF文件,虽然不是直接生成Word文件,但用户可以将生成的PDF文件用软件如Microsoft Word打开和编辑。 5. **xlsx-js库**: 对于导出Excel文件,可以使用xlsx-js(也称为SheetJS)库。这个...

    JS操作Word生成表格

    在IT行业中,JavaScript(简称JS)通常用于网页前端交互,但通过特定的库和API,我们也能使用JS来操作Microsoft Word文档,包括在Word中创建和编辑表格。本篇文章将详细探讨如何使用JS来实现这一功能,以及相关的...

    LiberOffice实现在线编辑Word和Excel文件的应用

    LiberOffice是一款开源的办公软件套件,与微软的Office高度兼容,支持创建、编辑和查看Word文档、Excel表格等多种格式。它提供了丰富的功能,包括文本处理、电子表格、演示文稿、绘图以及数据库管理等,使得用户无需...

    ueditor完美支持word导入自动转存,无需flash

    - **ueditor.all.js** 和 **ueditor.all.min.js**:这两个文件分别是ueditor的完整版JavaScript库,未压缩和压缩版本,包含了所有功能。 - **ueditor.parse.js** 和 **ueditor.parse.min.js**:这些文件用于解析外部...

    一个配合LiberOffice实现在线编辑Word和Excel文件的应用

    "一个配合LiberOffice实现在线编辑Word和Excel文件的应用"是这样的一个解决方案,它利用LiberOffice的强大功能,为用户提供了一个安全、自托管的方式,来编辑Microsoft Office格式的文档,如Word和Excel,而无需依赖...

    word导入sql

    总结来说,文件信息中包含了一系列的技术知识点,涉及客户端JavaScript操作、ActiveX对象、JSP页面数据处理、HTML表格定义以及与Java后端的数据交互等多方面知识。这些知识点可以应用于开发涉及数据导出到Word或...

    JAVA的Web打印方式(PageOffice、POI、jacob,html打印等)

    这种方式是最直接的,方便的,不需要加什么插件jar包,只要前台在一个div中模仿着报表的格式去设置界面布局,然后把数据动态的填充进去,再调用JavaScript打印函数,就可以实现界面的局部打印功能。如果不想让报表...

    基于springboot的文件在线预览.rar

    7. **前端实现**:前端通常使用React、Vue或Angular等现代JavaScript框架来构建用户界面,调用上述API实现文件上传和预览功能。 综上所述,基于SpringBoot的文件在线预览系统通过整合多种技术和工具,实现了便捷的...

    在线或本地读取word、ppt、pdf、excel、doc等文件

    首先,我们来看Word文件读取。Microsoft Word是世界上最流行的文本编辑软件之一,用于创建、编辑和格式化文档。读取Word文件通常需要有Microsoft Office套件或者兼容的第三方软件,如WPS Office。在线读取可以通过...

    html转word.zip

    - JavaScript不支持:Word文档不运行JavaScript,所以任何交互式元素(如按钮、表单)都无法保留。 5. **应用场景** - 网页保存:用户可以直接保存感兴趣的内容为Word文档,方便离线查看或编辑。 - 数据导出:...

    JavaScript将Web页面内容导出到Word及Excel的方法

    在JavaScript中,要实现这种功能,通常需要借助于ActiveXObject,这是一个仅在Internet Explorer浏览器中可用的对象,它可以创建并操控服务器端的对象,如Excel和Word的应用程序。尽管这不适用于所有现代浏览器(如...

    Windows下实现php在线预览功能

    - 第一步是将各种类型的文件(如Word文档、Excel表格、图片等)通过OpenOffice转换为PDF格式。这需要在PHP中编写相应的函数来调用OpenOffice的COM对象,并将文件转换保存为PDF。 - 第二步是使用SWFTools的pdf2swf...

    表格数据导出

    - **XLS(Excel 97-2003 工作簿)**:是Microsoft Excel早期版本的文件格式,用于存储和处理表格数据,支持公式、图表、格式化等。 - **DOC(Word文档)**:是Microsoft Word的文档格式,常用于创建和编辑文档,但...

    html导出excel和word等文档的插件.zip

    本压缩包包含的资源正是一套实现这一功能的JavaScript插件集合,适用于快速便捷地从HTML表格中导出数据到Excel,以及创建自定义的Word、PDF等文档。 首先,我们来看`jquery.table2excel`,这是一个轻量级的jQuery...

    用JS操作WORD、EXCEL导出

    这篇博文“用JS操作WORD、EXCEL导出”探讨了如何利用JavaScript进行文档处理,这对于需要在网页上实现办公文档的创建、编辑和导出功能的开发者来说是非常实用的知识点。 首先,我们要了解JavaScript如何与Office...

    将pdf,ppt,word,excel在浏览器中打开

    PDF.js是Mozilla开发的一个开源库,专门用于在浏览器中渲染PDF文件,它无需任何插件,只需JavaScript即可实现。PDF.js能够提供高质量的PDF文档显示,并支持多种现代浏览器。使用PDF.js,开发者可以轻松地集成PDF预览...

    JavaScript网页特效范例宝典源码

    目录: 第1章 窗口/框架与导航条设计 1 1.1 弹出窗口控制 2 实例001 打开新窗口显示广告信息 2 ...11.5 套打邮寄产品单 482 实例304 打印汇款单 482 实例305 打印快递单 484 实例306 打印信封 485 第...

    文件在线预览及OFFICE(word,excel,ppt)的在线编辑

    在这个项目中,配置Redis可能是为了存储文件元数据、用户权限信息或临时的编辑状态,以支持多用户同步编辑和快速响应。Redis的高效性能和丰富的数据结构使得它成为这类应用的理想选择。 5. **应用工具和文本编辑**...

    网页部分内容转换成word, excel

    可以使用编程语言如Python、JavaScript或C#的库来实现,比如Python的`pandoc`、`python-docx`和`openpyxl`,JavaScript的`jsPDF`,C#的`DocumentFormat.OpenXml`等。 2. DataTable: DataTable在.NET环境中是一个...

Global site tag (gtag.js) - Google Analytics