- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C操作word超级攻略
在当前项目开发过程11中,客户有根据数据库数据生成WORD文档的需求,在和同事沟通的过程中,找到了两个解决方案
-
-
1.先通过程序生成报表样式的HTML页面,然后修改HTML页面的后缀名为DOC。
2.定制WORD文档的模板文件,在C#中操作WORD模板,生成新的WORD文档。
第一方案简单,只需要改动文件的扩展名就行了,但是也存在了一些问题,譬如生成的WORD文档样式的丢失。这样对于客户来说可能是一个无法通过的方案。第二方案比较复杂,需要调用OFFICE的WORD组件通过C#来操作WORD,进而生成WORD。此方法类似于我们在c#中的后台拼接数据。虽然麻烦,但是能够灵活定制,只不过是操作WORD对象而已。
经过再三考虑:决定用第二种方法来生成WORD报告文档。
通过自己的实践,这个需求总算是搞定了,在实际开发的过程中,遇到了这样那样的问题,还好,通过不断的查找网络资源,结合实际开发中的情况,问题都得到了解决。现将本人在开发过程中的一些理解与经验总结一下:
在VS2008平台下,引用.net-Microsoft.Office.Interop.Word.12,这样就可以在程序用操作WORD对象了。
通过简单执行,报误,这个错误是因为权限不够,需要在DCOM配置中更改.net和IIS用户的操作权限,具体修改过程如下: 解决方法一:
1.控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档之后,单击属性打开此应 用程序的属性对话框。
2.单击标识选项卡,然后选择交互式用户。
3.单击安全选项卡,分别在启动和激活权限和访问权限组中选中自定义,然后自定义-编辑-添加ASP.NET账户和IUSER_计算机 名。
4. 确保允许每个用户访问,然后单击确定。
5. 单击确定关闭 DCOMCNFG。
如果上述方法不能解决问题,就应该是权限问题,请尝试用下面的方法:
在web.config中使用身份模拟,在system.web节中加入 identity impersonate=true userName=你的用户名 password=密码 /
/system.web
解决了上述问题,开始考虑如何创建WORD模板文件,WORD的模板文件其实就是通过书签来添加内容的。也就是通过在WORD文档中创建书签,然后在程序中获取模板文件的所有书签,通过给书签赋值来进行文档生成的。
在程序中的操作流程如下:
声明WORD程序的对象 → 声明一个WORD文档对象 → 获取当前的操作文档对象 → 获取文档所有的书签 → 将数据库数据赋值到对应的书签 → 将文档另存为指定的文件夹下.
下面将针对农业植物测试报告来分析具体的代码实现:
[复制此代码]CODE:
//生成WORD程序对象和WORD文档对象
Microsoft.Office.Interop.Word.Application appWord = new Application();
Microsoft.Office.Interop.Word.Document doc = new Document();
object oMissing = System.Reflection.Missing.Value;//这个是什么东西,我始终没搞明白-_-
//打开模板文档,并指定doc的文档类型
object objTemplate = Server.MapPath(p_TemplatePath);
object objDocType = WdDocumentType.wdTypeDocument;
doc = (Document)appWord.Documents.Add(ref objTemplate, ref objFalse, ref objDocType, ref objTrue);
//获取模板中所有的书签
Bookmarks odf = doc.Bookmarks;
string[] testTableremarks = { ApplyNo, AuditingDate, Auditor, CheckDate, Checker};
string[] testTablevalues = { ApplyNo, AuditingDate, Auditor, CheckDate, Checker,};
//循环所有的书签,并给书签赋值
for (int oIndex = 0; oIndex testTableremarks.Length; oIndex++)
{
obDD_Name = WD + testTableremarks[oIndex];
doc.Bookm
您可能关注的文档
- 填料的品种和用量对环氧胶粘剂剪切强度的影响.doc
- (前沿物理考查论文格式例文).doc
- (区域)变质岩结构构造的主要特征.doc
- (基于活动的成本核算).doc
- (江苏苏州地区)工程建筑材料见证取样标准.xls
- (鲁奇炉)煤气化废水脱酚脱氨脱盐零排放UAV处理工艺.pdf
- ++磁化水处理技术及其在农业上的应用_王艳红.pdf
- A Bayesian Analysis of Compressive Sensing Data Recovery in Wireless Sensor Networks.pdf
- A BiasDependent Model for the Impact of Process.pdf
- A Canonical Analysis of the First Order EinsteinHilbert Action.pdf
文档评论(0)