word表格转html后去除冗余代码
word可以另存为html文件,通过这个功能,可以快速实现网页展示word内容,特别是表格的编辑,它包含tr、td、th、rowspan、colspan等内容,直接写比较繁琐。
但word转换过来的html默认是带有很多格式代码,那么如何去除这些冗余代码,只保留主内容呢?
本来是打算从网上找工具的,但发现没有现成的,一般都是推荐用工具的文本替换来去除,这样不能复用。因此,本人采用nodejs写了一小段代码,来去除冗余代码。
主要思路是:
- nodejs读取html文件的文本内容
- 用substring函数获取table内容
- 用正则去除多余标签
- 用正则去除多余属性
- 用正则去除多余空格
var fs = require('fs')
// 异步读取
fs.readFile('static/detail/sheet004.html', function (err, data) {
if (err) {
return console.error(err);
}
// 步骤1:获取table内容
var content = data.toString();
content = content.substring(content.indexOf("<table"), content.indexOf("</table>") + 8);
// 步骤2:去除多余的标签
['span', 'p', 'o', 'font'].forEach(item => {
content = content.replace(new RegExp(`<${item}(.*?)>(.*?)<\/${item}.*?>`, 'gi'), function(match, p1, p2) {
return p2;
});
});
['col'].forEach(item => {
content = content.replace(new RegExp(`<${item}(.*?)\/>`, 'gi'), "");
})
// 步骤3:去除多余的属性元素
// 去除带引号的属性
content = content.replace(/(style)=(".*?"|'.*?')/g, "");
// 去除不带引号的属性
content = content.replace(/(class|border|cellspacing|MsoNormalTable|valign|width|center| |x:str|height|x:num|cellpadding)(=[^ \f\n\r\t\v>]*)?/g, "");
// 步骤4:去除多余空格
content = content.replace(/(\S+)(\s+)/g, function(match, p1, p2) {
return p1 + ' ';
})
content = content.replace(/(\s)(>|<)/g, function(match, p1, p2) {
return p2;
})
console.log(content);
});
word表格转html后去除冗余代码的更多相关文章
- 使用gulp-uncss精简css,去除冗余代码
写html页面的时候,多修改几次就会出现很多无用的css代码,下面使用gulp-uncss来精简css文件,去掉没用的css代码 1.首先找个目录创建一个gulp项目在命令行输入:npm init ...
- [转载]JAVA获取word表格中数据的方案
上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...
- [原创]JAVA获取word表格中数据的方案
上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...
- 批量去除Teleport Pro整站下载文件冗余代码
teleport pro tppabs标签批量删除 teleport pro tppabs标签批量删除 使 用Teleport Pro下载的网页代码中包含了很多垃圾代码,比如下载的html网页代码中会 ...
- 去除整站下载文件中的tppabs等冗余代码
用TeleprotUltra复制了一个网站,结果网页中出现了很多形如tppabs=””的冗余代码,点击vs中的“在文件中查找”图标,打开“查找和替换”对话框,转到“快速替换”,然后进行以下设置: “查 ...
- 如何使用免费控件将Word表格中的数据导入到Excel中
我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...
- 怎么批量修改Word表格的宽度
怎么批量修改Word表格的宽度 怎么批量修改Word表格的宽度呢.Word表格可根据窗口自动调整表格宽度,使得所有的表格宽度和页面宽度一样.当页面设置了新的页边距后,所有的表格都需要调整新的宽度.或者 ...
- poi导出word表格详解 超详细了
转:非常感谢原作者 poi导出word表格详解 2018年07月20日 10:41:33 Z丶royAl 阅读数:36138 一.效果如下 二.js代码 function export_word( ...
- 通过Aspose.Word和ZXING生成复杂的WORD表格
1.前言 这是我之前做的一个项目中要求的功能模块,它的需求是生成一个WORD文档,需要每页一个表格并且表格中需要插入文字.条形码和二维码等信息,页数可控制.具体的效果如下图所示: 可以看到有以下几点是 ...
随机推荐
- Linux 纯字符界面的玩法
Linux 纯字符界面的用途 装逼必备 省资源,服务器一般不安装图形界面 图形界面崩溃后紧急救援 进入字符界面的正确方式 目前新的 Linux 发行版基本上都使用 Systemd 作为 init 程序 ...
- [Swift]LeetCode113. 路径总和 II | Path Sum II
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...
- [Swift]LeetCode414. 第三大的数 | Third Maximum Number
Given a non-empty array of integers, return the third maximum number in this array. If it does not e ...
- [Swift]LeetCode557. 反转字符串中的单词 III | Reverse Words in a String III
Given a string, you need to reverse the order of characters in each word within a sentence while sti ...
- Firefox 多行标签的解决方案分享
更新了 Quantum 以后 TabMixPlus 就不能用了,我最中意的多行标签也没了,捣鼓了一下终于重新回来了. 指南: https://discourse.mozilla.org/t/tabs- ...
- CoCos2dx开发:PC端调试运行正常但打包apk文件后在手机上点击闪退
记:今天调试时出现的一个PC端调试运行正常,但打包apk文件后在手机上点击闪退的问题. 可能在不同的情况条件下,会有不同的原因导致apk安装后闪退问题.拿android studio等软件来说,开发安 ...
- Spring之AOP流程解析(ProxyFactory)
本节我们从ProxyFactory开始分析.该类有几个比较重要的方法——addAdvice.addAdvisor.getProxy,其中最后一个方法是我们本节的重点.前两个方法都是向ProxyFact ...
- Python内置函数(36)——iter
英文文档: iter(object[, sentinel]) Return an iterator object. The first argument is interpreted very dif ...
- 虎牙数万主播同时在线直播的秘密,CDN推流日志上行实时监控
6 月 10 日,又拍云 Open Talk | 2018 音视频技术沙龙·深圳站 顺利落幕,来自虎牙的直播运维研发架构师张波在沙龙上做了<基于CDN推流日志的主播上行实时监控及其自动化解密&g ...
- C++版 - 剑指offer面试题38:数字在已排序数组中出现的次数
数字在已排序数组中出现的次数 提交网址: http://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2?tpId=13&t ...