如何利用C#读取Word-成都快上网建站

如何利用C#读取Word

本篇内容主要讲解“如何利用C#读取Word”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用C#读取Word”吧!

创新互联公司专注于屏边网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供屏边营销型网站建设,屏边网站制作、屏边网页设计、屏边网站官网定制、微信平台小程序开发服务,打造屏边网络公司原创品牌,更为您提供屏边网站排名全网营销落地服务。

C#读取Word1. 建立工程

在ASP.NET里操作Word的***步就是添加COM引用到你的工程里,通过右键点击“解决方案资源管理器”的“引用”,添加引用。选择COM选项卡,添加Microsoft Word 12.0 Object Library(其中12.0是Word版本号,根据当前电脑上安装的Word版本确定)。 ASP.Net会自动生成Word的COM包装类程序集添加到应用程序目录里。

C#读取Word2. 代码逻辑

服务器端访问本地存在的Word文件,并根据他新建一个文件,利用Word的标签定位赋值。客户端浏览器通过文件链接访问到这个新生成的Word文件。具体代码如下:

private void Page_Load(object sender, System.EventArgs e)  {  // 在此处放置用户代码以初始化页面  object Missing = Type.Missing;  //取得Word文件路径   string strTemp = "doc/test.doc";   //新Word文件保存路径  string newFileName = "doc/test2.doc";  //创建一个名为WordApp的组件对象   Application WordApp = new ApplicationClass();   //必须设置为不可见  WordApp.Visible = false;   try {  //创建以strTemp为模板的文档  object oTemplate = Server.MapPath(strTemp);  Document WordDoc = WordApp.Documents.Add(ref oTemplate, ref    Missing,ref Missing, ref Missing);  WordDoc.Activate();   //对标签"Title"进行填充  string strBM = "Title";  object objBM = strBM;  if(WordApp.ActiveDocument.Bookmarks.Exists(strBM) == true)  {  WordApp.ActiveDocument.Bookmarks.get_Item(ref objBM).Select();  WordApp.Selection.TypeText("公文标题");  }    //保存为新文件  object oNewFileName = Server.MapPath(newFileName);  WordDoc.SaveAs(ref oNewFileName, ref Missing,ref Missing, ref    Missing,ref Missing,ref Missing,ref Missing,  ref Missing,ref Missing,ref Missing, ref Missing, ref Missing, ref    Missing, ref Missing, ref Missing, ref Missing);  WordDoc.Close(ref Missing, ref Missing, ref Missing);   WordApp.Quit(ref Missing, ref Missing, ref Missing);   }  catch(Exception Ex)  {  throw new Exception(Ex.Message);  }   //浏览器弹出下载框﹥  Page.RegisterStartupScript("", "﹤script﹥window.open('"+newFileName+"')   ﹤/script﹥");  }

运行前,工程目录下建文件夹doc, doc里新建一个test.doc,内容自己定,手动插入一个名为“Title”的标签。此代码在VS.Net2003+WinXP+Office2007 下运行通过。

C#读取Word时遇到的问题:

如果你在运行时出现下面的调试错误:

拒绝访问

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
 
异常详细信息: System.UnauthorizedAccessException: 拒绝访问。

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 ﹤identity impersonate="true"/﹥ 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

出现以上错误时,表明ASP.NET进程无法对具有用户界面的Word进行自动化调用,必须由一个拥有桌面的用户角色来启动ASP.NET进程。

解决方法:在Web.config文件的System.Web节里添加

﹤identity impersonate="true" userName="*" password="*" /﹥

其中userName和password是你电脑里的Windows登录账户。

到此,相信大家对“如何利用C#读取Word”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


本文名称:如何利用C#读取Word
标题来源:http://kswjz.com/article/jecsjg.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流