Word文档上传数据并且显示在页面中

  1. 创建一个public,用HttpPostedFileBase方法在控制器部分接收从视图传过来的文件。
  2. 判断传过来的玩家是否为空,不为空则进行下一步操作,if(……);
  3. 获取文件的拓宽名(后缀名),并且判断该文件的拓展名是否为(doc)或者(docx)类型,不是则说明该文件不是文档或者Word文档。
  4. 为文件命名,最好用随机字符串或者时间来命名,避免文件名重复出现的情况。
  5. 判断保存文件的路径是否存在,不存在就直接创建路径,然后再拼接存放Word文档的路径(string filePath=………);
  6. 把Word文档转换为HTML代码:首先把Word文档的拓展名改为(.HTML),然后就开始拼接保存文件的路径,因为什么判断过保存文件的文件夹是否存在了,所以在这里不需要重复判断,直接拼接路径就可以了(string HtmlPath=………);
    Word文档上传数据并且显示在页面中
  7. 引用Spire.Doc for .NET组件后将文件读取到document中,然后再把文件转换为HTML的格式并且保存到指定的路径下面。
  8. 用一个ReadAllText方法读取文件中的所有的字符串。
    9.用正则表达式把所以的P标签或者Pre标签全部替换为带有reg=“demo"属性的P标签以及结尾的标签也要替换为P标签的结尾标签,方便后面获取P标签里面的内容。
    10.替换完成之后利用正则表达式提取所有的P标签。—
    MatchCollectionmatchesPList=Regex.Matches(strHtml,”<preg=“demo”[\w\W\r\n]*?");
    11.声明一个键值对集合列表保存最终的结果。List<…>
    12.For循环上面提取出来的所有的P标签,把P标签以及里面的内容一条条地循环放入字符串strP中,然后再调用一个获取P标签里面的内容的方法FormateHandler,声明一个键值对集合并给这个键值对集合添加上面得到的数据。
    13.声明一个空的字符串,用来拼接存放下面的数据。
    14.foreach循环上面的键值对列表,把键值对列表里面的内容赋值给一个键值对集合,再在里面嵌套一层foreach循环,把键值对集合里面内容赋值给一个字符串,再把这个字符串里面的内容赋值给上面声明的那个空的字符串并且要在foreach循环的我们加上一个换行符,用来分割开里面的数据。
    15使returnJson的文本值等于上面的字符串,并且设置returnJson的状态为true,然后在用一个return Json(returnJson, JsonRequestBehavior.AllowGet)就可以把数据返回并且显示在页面当中了。
    Word文档上传数据并且显示在页面中
    步骤12中的FormateHandler方法:
  9. 在public方法中传入一个string类型的参数,传过来的参数取决于上面在调用这个方法时里面的括号放入的数据(public string FormateHandler(string htmlP));
  10. 判断里面的P标签有没有src这个属性,如果有则声明里面有图片文件,需要进行特殊的处理,再次调用一个专门处理图片文件的方法(getImages());
  11. 如果没有则去掉里面的Span标签,然后再再去掉span标签的基础上再把P标签去掉,然后里面剩下的就是我们需要的内容了,为了避免内容里面还有其他的各种各样的样式,所以需要通过正则表达式把里面的(注释 \r回车 \n换行符)样式去掉,再把这个数值返回回去。
    else{ htmlStr = Regex.Replace(htmlP, “<span.?>|| ", “”);
    htmlStr = Regex.Replace(htmlStr, "<p reg=“demo”.
    ?>|”, “”);
    }
    htmlStr = Regex.Replace(htmlStr, “”, “”);
    Word文档上传数据并且显示在页面中
    再接下来就是处理图片的那部分内容:
  12. 在public方法中传入一个string类型的参数,传过来的参数取决于上面在调用这个方法时里面的括号放入的数据(public string getImages (string htmlP));
  13. 声明一个空的字符串(restr),然后通过正则表达式获取到里面的img标签。
  14. For循环上面得到的img标签,把它的值赋给一个字符串imgs,然后开始判断这个字符串是否为空,不为空则用正则表达式在每个img标签的前面加上一个span标签。
  15. 然后匹配出所有的span标签,通过For循环获取匹配出来内容。
  16. 判断span标签里面有没有src这个属性,有则声明获取到图片的路径,然后拼接到restr这个字符串中去;没有则把里面的span标签全部去掉,然后拼接到restr这个字符串中,再把这个字符串返回回去。
    Word文档上传数据并且显示在页面中