当前位置: 首页 > 编程日记 > 正文

word 生成HTML

View Code
 1           string wordPath = Server.MapPath("/Fileword/" + FileUpload1.FileName);          
 2             string htmlPath = Server.MapPath("/Fileword/测试.html");
 3             //上传word文件
 4             FileUpload1.SaveAs(wordPath);
 5             #region 文件格式转换
 6             //请引用Microsoft.Office.Interop.Word
 7             ApplicationClass word = new ApplicationClass();
 8             Type wordType = word.GetType();
 9             Documents docs = word.Documents;
10             // 打开文件
11             Type docsType = docs.GetType();
12             object fileName = wordPath;
13             Document doc = (Document)docsType.InvokeMember("Open", BindingFlags.InvokeMethod, null, (object)docs, new Object[] { fileName, true, true });
14             //判断与文件转换相关的文件是否存在,存在则删除。(这里,最好还判断一下存放文件的目录是否存在,不存在则创建)
15             if (File.Exists(htmlPath)) { File.Delete(htmlPath); }
16             ////每一个html文件,有一个对应的存放html相关元素的文件夹(html文件名.files)
17             if (Directory.Exists(htmlPath.Replace(".html", ".files")))
18             {
19                 Directory.Delete(htmlPath.Replace(".html", ".files"), true);
20             };
21             //转换格式,调用word的“另存为”方法
22             Type docType = doc.GetType();
23             object saveFileName = htmlPath;
24             docType.InvokeMember("SaveAs", BindingFlags.InvokeMethod, null, doc, new object[] { saveFileName, WdSaveFormat.wdFormatHTML });
25             // 退出 Word
26             wordType.InvokeMember("Quit", BindingFlags.InvokeMethod, null, word, null);

这样生成的html , 会有很多冗余HTML,去除冗余HTML方法如下

View Code
 1  public static string CleanWordHtml(string html)
 2     {
 3         StringCollection sc = new StringCollection();
 4         sc.Add(@"<!--(\w|\W)+?>");
 5         sc.Add(@"<!--(\w|\W)+?-->");
 6         sc.Add(@"<style>(\w|\W)+?</style>");
 7         sc.Add(@"\s?class=\w+");       
 8         sc.Add(@"<(meta|link|/?o:|/?font|/?strong|/?st\d|/?head|/?html|body|/?body|/?w:|/?m:|/?v:|!\[)[^>]*?>");
 9         sc.Add(@"(<[^>]+>)+ ()+");
10         sc.Add(@"<xml>(\w|\W)+?</xml>");//清除xml标签及所有值      
11         sc.Add(@"(\n\r){2,}");       
12         foreach (string s in sc)
13         {
14             html = Regex.Replace(html, s, "", RegexOptions.IgnoreCase);
15         }
16 
17         foreach (Match match in Regex.Matches(html, "style='[^']+'", RegexOptions.IgnoreCase))
18         {
19             html = html.Replace(match.Value, match.Value.Replace('"', ' ').Replace("'","\""));
20 
21         }
22         html = Regex.Replace(html, @"(?<=style=['""])[^'""]*(?=['""])", delegate(Match m)
23         {
24             return string.Join(";", m.Value.Split(';').Where(t => Regex.IsMatch(t.Trim(), @"^(background|color):")).ToArray());
25         });
26         
27         return html;
28 
29     }

可根据自己的需求修改正则

转载于:https://www.cnblogs.com/1987kevin/archive/2013/03/25/2980724.html

相关文章:

CCF系列之画图(201409-2)

试题编号&#xff1a; 201409-2试题名称&#xff1a; 画图时间限制&#xff1a; 1.0s内存限制&#xff1a; 256.0MB问题描述&#xff1a; 问题描述在一个定义了直角坐标系的纸上&#xff0c;画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2&#xff0c;纵坐标范围从y1到y2…

大连理工计算机专业导师,大连理工大学计算机科学与技术学院研究生导师简介-申彦明...

大连理工大学计算机科学与技术学院研究生导师简介-申彦明大连理工大学 免费考研网/2016-05-04申彦明院系&#xff1a;计算机科学与技术学院办公电话&#xff1a;无电子信箱&#xff1a;shendlut.edu.cn更新时间&#xff1a;2014-4-4其他专业&#xff1a;计算机系统结构个人简介…

iOS基础问答面试题连载-附答案

2017-02-02 timhbw CocoaChina以下是一些自己收集的比较基础的问题&#xff08;大神可以忽略&#xff09;&#xff0c;附上答案&#xff0c;方便大家阅读。俗话说得好&#xff0c;基础不牢&#xff0c;地动山摇。文章末尾会提供PDF版的文档&#xff0c;方便大家木有网的时候也可…

一个非常简单的 ASP.NET MVC 示例:长轮询(又叫:反向 AJAX,英文名:Comet)实现...

关于 长轮询&#xff08;又叫&#xff1a;反向 AJAX&#xff0c;英文名&#xff1a;Comet&#xff09;的介绍&#xff0c;请查看&#xff1a;反向Ajax&#xff0c;第1部分&#xff1a;Comet介绍 下面是代码实现&#xff1a; UI: <p><input type"button" onc…

周记 2016.4.5

1. BUILD_IDpleaseDontKillMe /usr/local/tomcat_car/bin/shutdown.sh /usr/local/tomcat_car/bin/startup.sh 2. windown中mysql解压版设置密码: 最开始mysql没有密码&#xff0c;启动mysql后&#xff1a; cmd -- mysql -u root ----- use mysql , 然后执行下面命令 update…

西北工业大学21计算机考研,西北工业大学2018年计算机考研879专业综合考试大纲...

题号&#xff1a;879《专业综合》考试大纲《专业综合》含数据结构、计算机网络、计算机组成原理、信号与系统四部分组成&#xff0c;四选二。一、数据结构1. 数据结构、抽象数据类型的概念;2. 线性结构的相关内容。通用线性表和特殊线性表(栈、队列、广义表等)的逻辑结构以及物…

iOS 实现多个可变 cell 复杂界面的制作

来源&#xff1a;飘游人 www.jianshu.com/p/9fc838d46f5e 如有好文章投稿&#xff0c;请点击 → 这里了解详情 在日常的开发中&#xff0c;有时会遇到内容块比较多&#xff0c;且又可变的界面&#xff1a; 这个界面中有些内容块是固定出现的&#xff0c;比如最上面的商品详情图…

做销售如何跟单,逼单!共20招!(转)

逼单是整个销售业务过程中最重要的一个环节。如果逼单失败你的整个业务就会失败&#xff0c;其实整个业务过程就是一个“逼”的过程&#xff0c;逼要掌握技巧&#xff0c;不要太操之过急&#xff0c;也不要慢条斯理&#xff0c;应该张弛有度&#xff0c;步步为营&#xff0c;也…

how to write Makefile

http://www.cnblogs.com/aoyihuashao/archive/2010/01/18/1650865.html转载于:https://www.cnblogs.com/hSheng/archive/2013/03/27/2985145.html

职称计算机word2007难吗,职称计算机word2007原题

全国职称计算机考试题库——word2007模块word2007模块第1套试题1.修改当前文本窗体类型为"数字",默认数字为"5"。2.设置用户在键入“中兴瑞典”时自动替换为“中星睿典”。3.将当前图片位置改为四周型环绕。4.用WORD的插入技术,插入如下字符&#xff1a;④…

iOS 9 通用链接(Universal Links)

来源&#xff1a;iOS_小松哥 www.jianshu.com/p/734c3eff8feb 如有好文章投稿&#xff0c;请点击 → 这里了解详情 什么是Universal Links? 在iOS9之前&#xff0c;对于从各种从浏览器、Safari中唤醒APP的需求&#xff0c;我们通常只能使用scheme。但是这种方式需要提前判断系…

为什么你的工作经验不值钱

前言 每年的三月到六月&#xff0c;都是招聘高峰&#xff0c;除了大量的应届毕业生涌入社会之外&#xff0c;还有一些工作了一两年尚未找到稳定归属感的人&#xff0c;也会开始投递简历&#xff0c;是的&#xff0c;基本都是在拿了年终奖之后。作为前端技术主管&#xff0c;有幸…

http://bbs.phome.net/showthread-13-45519-0.html

适用于想使用EmpireCMS建站的用户&#xff1b;EmpireCMS零基础的用户&#xff1b;会使用Dreamweaver设计简单表格式模板的用户。教程在线观看&#xff1a; 安装实例教程&#xff1a; http://www.phome.net/doc/ecmsedu/rm/install.htm入门实例教程&#xff1a; http://www.phom…

计算机32位操作系统最大识别到内存,win7 32位系统可以支持多大的内存_win7 的32位系统最大支持多少g的内存...

大家都知道win7系统有32位和64位之分&#xff0c;而两者的安装配置是不一样的&#xff0c;一般4G内存的我们安装64位的系统&#xff0c;但是很多用户不知道win7 32位系统可以支持多大的内存&#xff0c;这就给大家分享一下win7 的32位系统最大支持多少g的内存吧。一、内存和操作…

33个2017年必须了解的iOS开源库

原文 本文翻译自Medium&#xff0c;原作者为 Paweł Białecki 照片版权&#xff1a;&#xff08;Unsplash/Markus Pe&#xff09; 你好&#xff0c;iOS 开发者们&#xff01;我的名字叫 Paweł&#xff0c;我是一个独立 iOS 开发者&#xff0c;并且是 Enter Universe 的作者。…

codeforces 610D D. Vika and Segments(离散化+线段树+扫描线算法)

题目链接&#xff1a; D. Vika and Segments time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVika has an infinite sheet of squared paper. Initially all squares are white. She introduced a two-dimensional c…

ubuntu下安装redis

安装reids服务器 apt-get install redis-server 测试是否安装成功 redis-cli 安装phpredis扩展 #wgethttps://github.com/nicolasff/phpredis/downloads #tar -zxvf nicolasff-phpredis-2.1.3-124-gd4ad907.tar.gz # mv nicolasff-phpredis-d4ad907 php-5.3.8/ext/phpredis/ # …

往往存储与计算机硬盘或其他,硬盘是计算机系统中信息资源最重要的存储设备其所存放信息-Read.DOC...

硬盘是计算机系统中信息资源最重要的存储设备其所存放信息-ReadPAGEPAGE 2摘要关键字&#xff1a;磁盘、硬盘、中断13、扩展中断13、分区表、MBR、DBR、DPT、Boot、CMOS、FAT、柱面、磁道、磁头、扇区随着科学技术的不断发展和社会信息化程度的不断提高&#xff0c;电脑已逐渐深…

【Ghost Blog】如何给Ghost Blog添加背景音乐

昨天闲着无聊&#xff0c;就给自己的电脑装了一个Ghost的博客&#xff0c;打开博客的第一眼就被震撼到了&#xff0c;我们可以发现界面十分的简介。。。。上面的都是废话 我们来看一看我我选择的音乐播放器——网易云音乐&#xff0c;这个播放器就是在一个歌曲上点开之后有一个…

AE 动画直接变原生代码:Airbnb 发布开源动画库 Lottie

原文 Airbnb 发布的 Lottie 是一个面向 iOS、Android 和 React Native 的开源动画库。 简单来说&#xff0c;就是可以直接利用 AE 导出的 JSON 动画文件&#xff0c;将其解析为原生代码&#xff0c;并跨平台运行在设备上。 根据身边朋友的试用&#xff0c;通过 Canvas 绘制动画…

纹理贴图的模式设置

1 要对纹理进行任何的操作&#xff0c;必须先使该纹理问当前的active纹理 glGenTextures( 1, &reflectionTexObj );glBindTexture( GL_TEXTURE_2D, reflectionTexObj );glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );glTexParameteri( GL_TEXTURE_2D, G…

人社局计算机考试报名时间,内蒙古人社局:2016年下半年计算机软件水平考试报名时间通知...

关于做好2016年度下半年计算机技术与软件专业技术资格、翻译专业资格(水平)考试笔译考试报名工作的通知各旗县区人力资源和社会保障局、市直有关单位&#xff1a;根据内蒙古自治区人事考试中心《关于做好2016年度下半年计算机技术与软件专业技术资格(水平)考试报名工作的通知》…

即时通讯下数据粘包、断包处理实例(基于CocoaAsyncSocket)

来源&#xff1a;涂耀辉 www.jianshu.com/p/2e16572c9ddc 如有好文章投稿&#xff0c;请点击 → 这里了解详情 前言 本文旨以实例的方式&#xff0c;使用CocoaAsyncSocket这个框架进行数据封包和拆包。来解决频繁的数据发送下&#xff0c;导致的数据粘包、以及较大数据&#x…

linux下 为自己编写的程序 添加tab自动补全 功能

linux下 为自己编写的程序 添加tab自动补全功能 入门 complete 在我的tmp下随便写了一个a.sh, 为他补全edit /etc/bash_completion.d/foo_foo() {local cur prev optsCOMPREPLY()cur"${COMP_WORDS[COMP_CWORD]}"prev"${COMP_WORDS[COMP_CWORD-1]}"opts&quo…

笔记本电脑(Windows7)实现无线AP

使用环境&#xff1a;出差两个同事住一个房间、网线不够用、没有路由器 1、在windows命令窗口中运行以下命令 netsh wlan set hostednetwork modeallow netsh wlan set hostednetwork ssidOPEN key1234567890 netsh wlan start hostednetwork 命令解释&#xff1a;在笔记本插有…

华北电力大学计算机图形学实验报告,华北电力大学计算机图形学实验报告分析.doc...

华北电力大学计算机图形学实验报告分析科 技 学 院课程设计(综合实验)报告( 2013 -- 2014 年度第 2 学期)实验名称 OpenGL基本图元绘制实验课程名称 计算机图形学||专业班级&#xff1a;计算机11K1 学生姓名&#xff1a;曲强学 号&#xff1a;111909010118 成 绩&#xff1a;指…

Fastlane 入门实战教程从打包到上传iTunes connect

有关神器 Fastlane 持续集成\部署的文章网上挺多,本文定位是入门教程,针对 iOS 应用的持续部署,只需一条命令就可实现从 Xcode 项目到 编译\打包\构建\提交审核 文章稍微有点长,涵盖内容为:fastlane 简介\安装\配置 Snapshot 截图 XCTest 一键上传App Store 说明:本文将 App…

double int char 数据类型

贴心的limits... 测试代码&#xff1a; #include <iostream> #include <stdio.h> #include <limits> #include <math.h> using namespace std;int main() {//double 有效数字16位double test3 1.2345678912345678e17;printf("%.17lf\n", te…

开发工具Drawscript

在Mac App Store上有一款iOS开发工具PaintCode(MAC App Store地址)。它可以通过矢量绘图来绘出你想要生成的用户控件界面&#xff0c;然后由PaintCode来动态生成iOS & OSX绘制代码。这样&#xff0c;你在drawRect函数中就只要粘贴拷贝就能生成自己想要的图案了。奈何&#…

悉尼大学计算机研究生学制,悉尼大学研究生学制

澳大利亚悉尼大学具有丰富的研究生专业课程&#xff0c;学制安排一般在1-2年时间。悉尼大学硕士申请要求要求非211大学申请者&#xff0c;暂不需清华认证 (毕业证、学位证、成绩单)入学要求&#xff1a;工程类专业(Engineering,IT)Master of Professional Engineering985/211学…