最近手头的一个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生成PDF文件,虽然不是直接生成Word文件,但用户可以将生成的PDF文件用软件如Microsoft Word打开和编辑。 5. **xlsx-js库**: 对于导出Excel文件,可以使用xlsx-js(也称为SheetJS)库。这个...
在IT行业中,JavaScript(简称JS)通常用于网页前端交互,但通过特定的库和API,我们也能使用JS来操作Microsoft Word文档,包括在Word中创建和编辑表格。本篇文章将详细探讨如何使用JS来实现这一功能,以及相关的...
LiberOffice是一款开源的办公软件套件,与微软的Office高度兼容,支持创建、编辑和查看Word文档、Excel表格等多种格式。它提供了丰富的功能,包括文本处理、电子表格、演示文稿、绘图以及数据库管理等,使得用户无需...
- **ueditor.all.js** 和 **ueditor.all.min.js**:这两个文件分别是ueditor的完整版JavaScript库,未压缩和压缩版本,包含了所有功能。 - **ueditor.parse.js** 和 **ueditor.parse.min.js**:这些文件用于解析外部...
"一个配合LiberOffice实现在线编辑Word和Excel文件的应用"是这样的一个解决方案,它利用LiberOffice的强大功能,为用户提供了一个安全、自托管的方式,来编辑Microsoft Office格式的文档,如Word和Excel,而无需依赖...
总结来说,文件信息中包含了一系列的技术知识点,涉及客户端JavaScript操作、ActiveX对象、JSP页面数据处理、HTML表格定义以及与Java后端的数据交互等多方面知识。这些知识点可以应用于开发涉及数据导出到Word或...
这种方式是最直接的,方便的,不需要加什么插件jar包,只要前台在一个div中模仿着报表的格式去设置界面布局,然后把数据动态的填充进去,再调用JavaScript打印函数,就可以实现界面的局部打印功能。如果不想让报表...
7. **前端实现**:前端通常使用React、Vue或Angular等现代JavaScript框架来构建用户界面,调用上述API实现文件上传和预览功能。 综上所述,基于SpringBoot的文件在线预览系统通过整合多种技术和工具,实现了便捷的...
首先,我们来看Word文件读取。Microsoft Word是世界上最流行的文本编辑软件之一,用于创建、编辑和格式化文档。读取Word文件通常需要有Microsoft Office套件或者兼容的第三方软件,如WPS Office。在线读取可以通过...
- JavaScript不支持:Word文档不运行JavaScript,所以任何交互式元素(如按钮、表单)都无法保留。 5. **应用场景** - 网页保存:用户可以直接保存感兴趣的内容为Word文档,方便离线查看或编辑。 - 数据导出:...
在JavaScript中,要实现这种功能,通常需要借助于ActiveXObject,这是一个仅在Internet Explorer浏览器中可用的对象,它可以创建并操控服务器端的对象,如Excel和Word的应用程序。尽管这不适用于所有现代浏览器(如...
- 第一步是将各种类型的文件(如Word文档、Excel表格、图片等)通过OpenOffice转换为PDF格式。这需要在PHP中编写相应的函数来调用OpenOffice的COM对象,并将文件转换保存为PDF。 - 第二步是使用SWFTools的pdf2swf...
- **XLS(Excel 97-2003 工作簿)**:是Microsoft Excel早期版本的文件格式,用于存储和处理表格数据,支持公式、图表、格式化等。 - **DOC(Word文档)**:是Microsoft Word的文档格式,常用于创建和编辑文档,但...
本压缩包包含的资源正是一套实现这一功能的JavaScript插件集合,适用于快速便捷地从HTML表格中导出数据到Excel,以及创建自定义的Word、PDF等文档。 首先,我们来看`jquery.table2excel`,这是一个轻量级的jQuery...
这篇博文“用JS操作WORD、EXCEL导出”探讨了如何利用JavaScript进行文档处理,这对于需要在网页上实现办公文档的创建、编辑和导出功能的开发者来说是非常实用的知识点。 首先,我们要了解JavaScript如何与Office...
PDF.js是Mozilla开发的一个开源库,专门用于在浏览器中渲染PDF文件,它无需任何插件,只需JavaScript即可实现。PDF.js能够提供高质量的PDF文档显示,并支持多种现代浏览器。使用PDF.js,开发者可以轻松地集成PDF预览...
目录: 第1章 窗口/框架与导航条设计 1 1.1 弹出窗口控制 2 实例001 打开新窗口显示广告信息 2 ...11.5 套打邮寄产品单 482 实例304 打印汇款单 482 实例305 打印快递单 484 实例306 打印信封 485 第...
在这个项目中,配置Redis可能是为了存储文件元数据、用户权限信息或临时的编辑状态,以支持多用户同步编辑和快速响应。Redis的高效性能和丰富的数据结构使得它成为这类应用的理想选择。 5. **应用工具和文本编辑**...
可以使用编程语言如Python、JavaScript或C#的库来实现,比如Python的`pandoc`、`python-docx`和`openpyxl`,JavaScript的`jsPDF`,C#的`DocumentFormat.OpenXml`等。 2. DataTable: DataTable在.NET环境中是一个...