首页 > 学院 > 开发设计 > 正文

Asp.net操作Word文档,原来这么简单啊!

2019-11-17 01:52:19
字体:
来源:转载
供稿:网友

asp.net操作Word文档,原来这么简单啊!

引用Word对象库文件

具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!

如图

这会自动在你的应用程序文件夹中放置一个程序集(assembly)将COM接口邦定到Word。

上传并存储word文件

上传文件时首先通过上传控件找到所需上传的文件,然后获取文件的大小,最后以流的形式写入数据库

具体代码为

C# 代码 复制
PRivate void Btn_OK_Click(object sender, System.EventArgs e)        {            string name=name_TextBox.Text;             //接收上传文件            Stream fileStream=File1.PostedFile.InputStream;            //获取上传文件字节的大小            int length=File1.PostedFile.ContentLength;            byte[] wordData=new byte[length];            //从流中读取字节并写入wordData            int n=fileStream.Read(wordData,0,length);            //获取当前时间            DateTime time=DateTime.Now;            //连接数据库            SqlConnection conn=new SqlConnection();            conn.ConnectionString="workstation id=TIANCHUNZHU;packet size=4096;integrated security=SSPI;data source=TIANCHUNZHU;persist security info=False;initial catalog=test";            SqlCommand cmd=new SqlCommand();            cmd.Connection=conn;            cmd.CommandText="INSERT INTO word (fileName,postTime,fileContent) values (@fileName,@postTime,@fileContent)";            SqlParameter nameParam=new SqlParameter("@fileName",System.Data.SqlDbType.VarChar,50);            nameParam.Value=name;            cmd.Parameters.Add(nameParam);            SqlParameter timeParam=new SqlParameter("@postTime",System.Data.SqlDbType.DateTime,8);            timeParam.Value=time;            cmd.Parameters.Add(timeParam); //添加word文件            SqlParameter contentParam=new SqlParameter("@fileContent",System.Data.SqlDbType.Image); ①//见本段最后注解            contentParam.Value=wordData;            cmd.Parameters.Add(contentParam);            conn.Open();            cmd.ExecuteNonQuery();            conn.Close();        } 

说明

此处由于是Image类型文件,事先可能无法预测文件的大小,因此可不必指定size参数。如果希望控制上传文件的大小则可以输入size参数。如指定1000,则上传时最大可以上传1k的word文档。

从数据库中读取数据并恢复为word文件

读取数据时先将数据从数据库中读入缓冲区,然后再从缓冲区写入最终文件。因此首先要开辟一个缓冲区并设定它的大小,每当缓冲区读满时就要将缓冲区内的数据写入文件,以清空缓冲区并继续向缓冲区读数据,直到最后一次将缓冲区内剩余的数据全部写入文件,新的word文档即可生成。

由于这一部分用到了字节流的输入输出操作,因此要引用System.IO命名空间

代码

C# 代码 复制

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表