批量导入数据将word文档转换成HTML文档
1.在批量导入数据里:第一步下载一个word文档模板,用户可以根据这个worm文档模板的要求去填写数据,填学好数据之后保存worm文档
2.在页面选择到word文档保存到from表单中,通过ajaxSubmit()方法提交from表单的方式将word文档提交到控制器中,在控制器中创建一个方法接收文档和处理文档。
3.在方法里通过处理传递过来的word文件,先获取文件的名称FileName,分割文件名称获取文件的原始名称,通过获取的文件名称获取到文件的扩展名,通过文件的扩展名可以判断一下传过来的文件是否是自己指定的某种格式的文档。获取当前系统的时间联合前面获取到的文件扩展名组合新的文件名称,因为时间是不会重复的,所以这样可以得到一个独一无二的新的文件名称。检查一下需要将这个文件保存到的目录是存在,如果这个目录不存在就需要我们去创建这个目录,如果目录存在,则不需要创建目录,直接执行下一阶段的代码。
4.将上面组合的新的文件名称和目录组合成一个文件路径,保存文件 SaveAs()在派生类中重写时,保存上载文件的内容。
5.通过上面获取到的文件扩展名去更改文件的扩展名
- 将文件读取到document中,再将文件转化成HTML文档并保存
7.接下来如果你想将你保存的文件的内容显示到页面上可以让你检查你保存的数据,这时候你可以通过ReadAllText 读取文件内容,返回一个包含所有行的字符串,然后通过正则表达式去分割数据,通过一系列分割可以获取到你需要的内容,将处理好的数据返回到试图,在试图中进行数据回填就可以显示到页面上,当然你得设置一个用于显示数据内容的区域,用于显示内容。
注意:下面代码来源于老师授课内容
一、Form表单
<form id="frmUpWord" action="upload Word" method="post" enctype="multipart/form-data"><input type="file" name="file" accept=".doc,.docx" onchange="uploadWord()" /></form>
二、提交from表单和数据回填
function uploadWord() {
var index =
layer.load();//文件加载时显示的加载图标
$("#frmUpWord").ajaxSubmit(function (message) {layer.close(index);if (message.State) {$("#titlesInfor").html(message.Text);//将返回的数据回填到页面显示出来layer.msg("请检查上传的试题!!!", { icon: 0, skin: "layui-layer-molv" });} else {layer.msg(message.Text, {
icon: 0, skin: “layui-layer-molv” });
}});}
三、控制器中的方法,处理文件、保存文件、返回数据
public ActionResult Upload Word(HttpPostedFileBase file) {
ReturnJson msg = new ReturnJson();if (file != null){string FileName =
file.FileName;//获取文件的名称
//主要处理IE浏览器上传的文件名string[] str =
FileName.Split(’\’);//分割文件名称用数组接收
FileName = str[str.Length - 1];//获取分割出来的文件名的最后一部分//获取文件的扩展名string fileExtension = Path.GetExtension(FileName); if (".doc||.docx".Contains(fileExtension))
{
//获取系统时间和文件的扩展名合起来当作文件的名称string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + FileName;#region 判断上传文件的类型//检查目录是否存在,不存在据创建目录if (!Directory.Exists(Server.MapPath("~/Document/Title/Temp/"))) {//创建目录/Document/Notice onloadDirectory.CreateDirectory(Server.MapPath("~/Document/Title/Temp/"));}//保存文件的路径 Combine 将两个字符串组合成一个路径string filePath = Path.Combine(Server.MapPath("~/Document/Title/Temp/"), fileName);//保存文件 SaveAs()在派生类中重写时,保存上载文件的内容file.SaveAs(filePath);#region 将word转换HTML //html文件的文件名称,更改文件扩展名该为 .htmlstring htmlName =
fileName.Replace(fileExtension, “.html”);
//组合html文件的保存路径string htmlPath = Path.Combine(Server.MapPath("~/Document/Title/Temp/"), htmlName);/**Spire.Doc for .NET是一款由E-iceblue公司开发的专业的Word .NET类库,使用该工具开发人员可以在任意.NET平台(C#,VB.NET,ASP.NET)上快速创建,读取,写入,转换,打印Word文档。作为一个独立的Word 组件,Spire.Doc的运行无需安装Microsoft Word。而且,它可以将Microsoft Word文档创建功能集成到开发者的任何.NET应用程序 Spire.Doc.for .NET 是一个专业的word .NET库 ˈspaɪə(r) **///需要在引用哪里引用Spire.DocDocument document = new Document(filePath); //将文件读取到document中
document.SaveToFile(htmlPath, FileFormat.Html);//将文件转化成HTML文档并保存
#endregion//ReadAllText 读取文件内容,返回一个包含所有行的字符串string strhtml =
System.IO.File.ReadAllText(htmlPath);
//替换
html中的 给p标签添加一个自定义属性,若有pre标签,则替换成p标签
strhtml = Regex.Replace(strhtml, "<p|<pre", "<p
reg=“demo”");
strhtml = Regex.Replace(strhtml, "</pre>", "</p>");//去掉style后面的样式strhtml = Regex.Replace(strhtml, "style=\".+?(?=\")\"", "");//正则表达式获取所有的P标签, \r回车 \n换行符MatchCollection matchPList = Regex.Matches(strhtml, "<p
reg=“demo”[\w\W\r\n]*?>
");
//保存最终结果List<Dictionary<string, string>> listLast = new List<Dictionary<string, string>>();//保存所有段落//将符合段落内容格式的字符串保存在列表中//抽取p标签的文字图片内容//保存最终结果for(int i = 1; i <
matchPList.Count; i++)
{string strP=
matchPList[i].Value;
//因为p标签可能存在多个文档与图片,所有使用List保存string c =
FormatHandler(strP);
Dictionary<string, string> dic = new Dictionary<string, string>();//Dictionary表示键和值的集合dic.Add(i.ToString(),
c);
listLast.Add(dic);}string strOutHtml = "";foreach (Dictionary<string,string>listitem in listLast) {foreach(string item in listitem.Values){strOutHtml += item;}strOutHtml += "<br/>";}//将抽取的结果 构建成显示的htmlmsg.State = true;msg.Text = strOutHtml;}else{msg.Text = "只能上传word文件";}#endregion}else{msg.Text = "上传的文件为空";}return Json(msg, JsonRequestBehavior.AllowGet);}
1.在批量导入数据里:第一步下载一个word文档模板,用户可以根据这个worm文档模板的要求去填写数据,填学好数据之后保存worm文档
2.在页面选择到word文档保存到from表单中,通过ajaxSubmit()方法提交from表单的方式将word文档提交到控制器中,在控制器中创建一个方法接收文档和处理文档。
3.在方法里通过处理传递过来的word文件,先获取文件的名称FileName,分割文件名称获取文件的原始名称,通过获取的文件名称获取到文件的扩展名,通过文件的扩展名可以判断一下传过来的文件是否是自己指定的某种格式的文档。获取当前系统的时间联合前面获取到的文件扩展名组合新的文件名称,因为时间是不会重复的,所以这样可以得到一个独一无二的新的文件名称。检查一下需要将这个文件保存到的目录是存在,如果这个目录不存在就需要我们去创建这个目录,如果目录存在,则不需要创建目录,直接执行下一阶段的代码。
4.将上面组合的新的文件名称和目录组合成一个文件路径,保存文件 SaveAs()在派生类中重写时,保存上载文件的内容。
5.通过上面获取到的文件扩展名去更改文件的扩展名
- 将文件读取到document中,再将文件转化成HTML文档并保存
7.接下来如果你想将你保存的文件的内容显示到页面上可以让你检查你保存的数据,这时候你可以通过ReadAllText 读取文件内容,返回一个包含所有行的字符串,然后通过正则表达式去分割数据,通过一系列分割可以获取到你需要的内容,将处理好的数据返回到试图,在试图中进行数据回填就可以显示到页面上,当然你得设置一个用于显示数据内容的区域,用于显示内容。
注意:下面代码来源于老师授课内容
一、Form表单
二、提交from表单和数据回填
function uploadWord() {
var index =
layer.load();//文件加载时显示的加载图标
$("#frmUpWord").ajaxSubmit(function (message) {
layer.close(index);
if (message.State) {
$("#titlesInfor").html(message.Text);//将返回的数据回填到页面显示出来
layer.msg(“请检查上传的试题!!!”, { icon: 0, skin: “layui-layer-molv” });
} else {
layer.msg(message.Text, {
icon: 0, skin: “layui-layer-molv” });
}
});
}
三、控制器中的方法,处理文件、保存文件、返回数据
public ActionResult Upload Word(HttpPostedFileBase file) {
ReturnJson msg = new ReturnJson();
if (file != null)
{
string FileName =
file.FileName;//获取文件的名称
//主要处理IE浏览器上传的文件名
string[] str =
FileName.Split(’\’);//分割文件名称用数组接收
FileName = str[str.Length - 1];//获取分割出来的文件名的最后一部分
//获取文件的扩展名
string fileExtension = Path.GetExtension(FileName);
if (".doc||.docx".Contains(fileExtension))
{
//获取系统时间和文件的扩展名合起来当作文件的名称
string fileName = DateTime.Now.ToString(“yyyyMMddHHmmss”) + FileName;
#region 判断上传文件的类型
//检查目录是否存在,不存在据创建目录
if (!Directory.Exists(Server.MapPath("~/Document/Title/Temp/"))) {
//创建目录/Document/Notice onload
Directory.CreateDirectory(Server.MapPath("~/Document/Title/Temp/"));
}
//保存文件的路径 Combine 将两个字符串组合成一个路径
string filePath = Path.Combine(Server.MapPath("~/Document/Title/Temp/"), fileName);
//保存文件 SaveAs()在派生类中重写时,保存上载文件的内容
file.SaveAs(filePath);
#region 将word转换HTML
//html文件的文件名称,更改文件扩展名该为 .html
string htmlName =
fileName.Replace(fileExtension, “.html”);
//组合html文件的保存路径
string htmlPath = Path.Combine(Server.MapPath("~/Document/Title/Temp/"), htmlName);
/**Spire.Doc for .NET是一款由E-iceblue公司开发的专业的Word .NET类库,
使用该工具开发人员可以在任意.NET平台(C#,VB.NET,ASP.NET)上快速创建,
读取,写入,转换,打印Word文档。作为一个独立的Word 组件,
Spire.Doc的运行无需安装Microsoft Word。
而且,它可以将Microsoft Word文档创建功能集成到开发者的任何.NET应用程序
Spire.Doc.for .NET 是一个专业的word .NET库 ˈspaɪə®
**/
//需要在引用哪里引用Spire.Doc
Document document = new Document(filePath); //将文件读取到document中
document.SaveToFile(htmlPath, FileFormat.Html);//将文件转化成HTML文档并保存
#endregion
//ReadAllText 读取文件内容,返回一个包含所有行的字符串
string strhtml =
System.IO.File.ReadAllText(htmlPath);
//替换
html中的 给p标签添加一个自定义属性,若有pre标签,则替换成p标签
strhtml = Regex.Replace(strhtml, “<p|<pre”, “<p
reg=“demo””);
strhtml = Regex.Replace(strhtml, “”, “
”);
//去掉style后面的样式
strhtml = Regex.Replace(strhtml, “style=”.+?(?=")"", “”);
//正则表达式获取所有的P标签, \r回车 \n换行符
MatchCollection matchPList = Regex.Matches(strhtml, “<p
reg=“demo”[\w\W\r\n]*?>
”);
//保存最终结果
List<Dictionary<string, string>> listLast = new List<Dictionary<string, string>>();
//保存所有段落
//将符合段落内容格式的字符串保存在列表中
//抽取p标签的文字图片内容
//保存最终结果
for(int i = 1; i <
matchPList.Count; i++)
{
string strP=
matchPList[i].Value;
//因为p标签可能存在多个文档与图片,所有使用List保存
string c =
FormatHandler(strP);
Dictionary<string, string> dic = new Dictionary<string, string>();//Dictionary表示键和值的集合
dic.Add(i.ToString(),
c);
listLast.Add(dic);
}
string strOutHtml = “”;
foreach (Dictionary<string,string>listitem in listLast) {
foreach(string item in listitem.Values)
{
strOutHtml += item;
}
strOutHtml += “
”;
}
//将抽取的结果 构建成显示的html
msg.State = true;
msg.Text = strOutHtml;
}
else
{
msg.Text = “只能上传word文件”;
}
#endregion
}
else
{
msg.Text = “上传的文件为空”;
}
return Json(msg, JsonRequestBehavior.AllowGet);
}
批量导入数据将word文档转换成HTML文档相关推荐
- java xml转html_如何在Java中将XML文档转换成HTML文档.pdf
您所在位置:网站首页 > 海量文档  > 计算机 > 网页设计/UI 如何在Java中将XML文档转换成HTML文档. ...
- python学习之word文档转换成pdf文档
平时办公的时候总有word文档转换pdf的操作,关键wps等转换工具都还是收费的.这里利用python代码把多个word文档转换合并成pdf文档的实现.代码运行需要几个必要库,没有下载安装的小伙伴可以 ...
- Office文档转换成PDF文档
本方案是我在网络上收集前人智慧,以及辛苦奋斗探索几周完成的成果. 本文从一个只会Java零基础的开发者的角度,全面.琐碎的进行总结. 具体方案: 方案一.使用OpenOffice.org的系统服务+j ...
- XSLT实现XML文档转换成HTML文档
XML文档描述了数据的结构,并且可以用自定义的标记元素描述数据意义,而且实现了记录数据的功能.如果想要将XML的数据显示在网页页面上,如何做呢? 最简单的方式就是将XML文件直接用浏览器打开,在记事本 ...
- word转图片 java_Java 利用LibreOffice将Office文档转换成 PDF,进而转图片,实现在线预览功能...
项目中需要将 Office 文档上传并实现在线预览,用到了 LibreOffice 将 Office 文档转换为 PDF 文档,然后再用 pdfbox 将 PDF 转为图片. 本文介绍借助 Libre ...
- 如何将CSDN文档转换成IPYNB格式的文档?
简 介: ※IPYNB格式的文档可以很方便在Jupyter Notebook环境内方便研究人员对于算法.数据进行操作.Markdown文本则便于形成各种网络文档.本文介绍了利用notedown实现将C ...
- Office文档转换成PDF
分享知识 传递快乐 Office文档转换成PDF 文档转换的方式有很多种,比如有Apache下的POI.jodconverter等技术.本例用的jodconverter-core-3.0技术对文档进行 ...
- java将office文档,word,ppt,pdf文档转换成swf文件在线预览
java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...
- c# html文件转换word,C#实现word转换成html文档 源码
[实例简介]C#实现word转换成html文档 [实例截图] [核心代码] using System; using System.Collections.Generic; using System.C ...
最新文章
- matlab i型级联filter,Matlab中filter,conv,impz用法(最新整理)
- 我的小作品(烂笔头)
- Ext的viewport在所有浏览器下出现界面内容消失的问题
- 使用移动自适应布局+easy mock实现移动界面的简单实现
- 找出OData service出错根源的小技巧
- DHCP服务开启了,为什么老是网络冲突
- 一季度平板电脑市场:苹果稳居第一,华为第二!
- 常见的IC封装形式大全(超详细)
- 软件公司之间合作的保密协议范本
- 软件可靠性计划过程组成与LRU简介
- 2021微信红包封面免费领取最新攻略 春节免费微信红包封面序列号大全
- oracle 12c创建归档,oracle 12c 数据归档 即Using In-Database Archiving feature
- 005--Keil使用--出现integer conversion resulted in truncation
- js常用工具方法utils
- 高新技术企业认定专项审计报告包含报告?专审收费标准
- IOS内存泄漏动静态方法排查
- 大数据----2.基础环境搭建
- Tushare库之Libor拆借利率
- HDU 1846-Brave Game(巴什博弈-SG函数)
- 前端生成二维码,升级