WPS如何快速导入网页数据范文
篇一:如何实现WORD文档自动导入网站数据库
?
如何实现WORD文档自动导入网站数据库最近,本人在制作个人网站时发现,如何把手中的WORD文档快速的上传到自己的网站是个大问题。主要的拦路虎就是文档中嵌入的图片如何上传,秉承网人传统“不懂问百度”的精神,我在百度上搜了好久,发现这真的是一个好问题,现成的解决方法还是有的:
?
首先有个台湾的编辑器在很久之前就解决了这个问题,它是eWebEditor,它的解决方案是在你的机器上安装一个浏览器插件,我试用了一下格式保留不错,图片正确上传。但很不幸它要收费,对于我辈屌丝来说,收费的东东用不起啊。而且在百度搜了下,听人说eWebEditor还存在很大的安全问题,所以自然就pass了。
?
还有一个是百度投资在搞的ueditor,可惜里面的导入功能现在还在测试,无法提供给我们使用,而且经过我的测试,它的导入功能无法导入.doc文档,只能支持.docx文档,当然它的导入功能还是很好使的,只不过受制于人不是我们的追求。所以我决定自己搞一个东西实现这个功能。
?
如何实现呢,解决方案有2个选择:客户端方案和服务端方案,由于我的个人网站时PHP语言,处理WORD文档的能力比较弱,经过我的搜索好像只有phpword提供这样的功能,但要处理这么麻烦的工作,它的能力还力有未逮。那么就用客户端方案了,想到WORD的老东家是微软,所以我选择了C#作为开发语言,事实证明C#开发的确给我省了很多时间。下面我就开发过程说几点感想:
?
1、首先选择开发方案,我选择了一个最简单的开发方案:打开
?
WORD文档并把文档复制到剪贴板,C#程序读取剪贴板内容并把图文上传到网站。这样的方案省却了操作WORD文件,降低了编程难度。
?
2、解决核心问题,这个方案的核心问题是:读取剪贴板上的
?
HTML代码,上传HTML代码中的图片,替换HTML代码中的图片链接。经过百度搜索发现,C#要实现这些功能都非常简单,核心代码如下:
?
剪贴板读取HTML:Clipboard.GetData("HtmlFormat");
?
上传图片:myWebClient.UploadFile(“上传地址”,"POST",“上传文件名”)
?
替换字符:str=str.Replace(strlist[i],webfilelist[i]);
?
3、确定了核心问题的解决方法,接下来就是代码的编写。代码如下:if(Clipboard.ContainsText(TextDataFormat.Html))
?
{
?
System.IO.MemoryStreamvMemoryStream=
?
Clipboard.GetData("HtmlFormat")asSystem.IO.MemoryStream;vMemoryStream.Position=0;
?
byte[]vBytes=newbyte[vMemoryStream.Length];
?
vMemoryStream.Read(vBytes,0,(int)vMemoryStream.Length);stringstr=Encoding.UTF8.GetString(vBytes);
?
intipos=str.IndexOf("
?
str=str.Substring(ipos+5);
?
ipos=str.IndexOf(">");
?
str=str.Substring(ipos+1);
?
ipos=str.IndexOf("
?
str=str.Substring(0,ipos);
?
intjpos=-1;
?
ipos=str.IndexOf("src=\"");
?
this.listBox1.Items.Clear();
?
Liststrlist=newList();
?
while(ipos!=-1)
?
{
?
jpos=str.IndexOf("\"",ipos+5);
?
strlist.Add(str.Substring(ipos+5,jpos-ipos-5));
?
ipos=str.IndexOf("src=\"",ipos+5);
?
}
?
//开始上传图片
?
Listwebfilelist=newList();
?
WebClientmyWebClient=n