近日开发中用户要求实现导出数据为Word,本来想使用html保存为word的实现,但因用户要求样式很高,使用html不好控制,并且导出中包括图片,使用页面导出时图片还是一个路径,不能把图片包括在word中,所以就必须使用原生的Word进行操作了。

开发环境:windows 8 + visual studio 2010 + dotnetframework 4 + word 2010

开发过程:

1. 因之前并没有开发过word应用,所以先创建一个word应用程序,看看引用了哪些Dll;

2. 创建一个asp.net应用程序,命名为MyWebWord,添加word应用程序中对word相关的引用:

Microsoft.Office.Interop.Word
Microsoft.Office.Tools
Microsoft.Office.Tools.Word
3. 先创建word模板oriWord.doc,放到web应用程序下的wordDod目录下;

4 . 然后创建代码,主要代码如下:

...
using Word = Microsoft.Office.Interop.Word;
...
// 复制文件
string oriFilename = System.Web.HttpContext.Current.Server.MapPath("~/WordDoc/OriWord.doc");
string targetFilename = System.Web.HttpContext.Current.Server.MapPath("~/WordDoc/New.doc");
System.IO.File.Copy(oriFilename,targetFilename,true);
Word.Application WordApp = new Word.ApplicationClass();
// 打开文件
Word.Document doc = WordApp.Documents.Open(targetFilename);
try
{
操作word中的表格
Word.Table tbl = doc.Tables[1];
tbl.Cell(3, 2).Range.Text = "张三";
tbl.Cell(4, 2).Range.Text = "A公司";
tbl.Cell(5, 2).Range.Text = "38岁";
tbl.Cell(6, 2).Range.Text = "开发工程师";
......
}
finally
{
doc.Save();
doc.Close();
WordApp.Quit();
doc = null;
WordApp = null; }

在vs开发服务器下运行正常。

5. 部署到windows2008服务器上,出现com clsId。。。拒绝操作的错误,经先后多次搜索、尝试,最后成功,具体操作如下:
a.在webconfig中增加模拟管理权权限
在system.web节点下增加
<identity impersonate="true" userName="系统管理员" password="系统管理员密码"/>
一般情况下能够解决上面的问题。能够操作服务器新建EXCEL,WORD。
但是在OFFICE 32和WINDOWS 64位的情况下,似乎不能操作EXCEL和WORD。  

b. 在组件服务-DCOM设置 Excel 和 Word App的属性,从管理工具中进入(或命令行dcomcnfg进入)

  找到Microsoft Office Word 97 - 2003文档,

点击右键--属性--“标识”tab--选交互用户。
再在“安全”tab--“启动和激活权限”--自定义--编辑--安全性--添加"NETWORK SERVICE"用户--“本地启动”和“本地激活”权限。
依然“安全”tab--“ 访问权限 ”--自定义--编辑--安全性--添加"NETWORK SERVICE"用户--“本地启动”和“本地激活”权限。 
重启IIS。


到此在IIS8中asp.net操作word的配置完成,测试运行也正常了。

在开发过程中也存在了另外一个问题,一直没有能够解决:

  在win8的IIS中运行时,打开word文档时,不报错,而是直接返回为空,多种尝试都没有结果,而且不win8下dcom设置中没有显示上图中的的word文档,网上说的word的id,在win8下的dcom中也没有出现,所以也一直没有运行成功。哪位大牛知道如何处理,请指教一下。

asp.net操作word的表格的更多相关文章

  1. ASP.NET操作Word的IIS权限配置

    ASP.NET账号在默认情况下是没有权限操作Microsoft Office对象的,如果不进行权限的配置,代码会抛出类似以下的异常: 检索 COM 类工厂中 CLSID 为 {00024500-000 ...

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

    引用Word对象库文件  具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为 ...

  3. asp.net 操作word 权限

    1.先安装office 2.在“DCOM配置”中,为IIS账号配置操作Word(其他Office对象也一样)的权限: 开始>运行>输入  dcomcnfg  >确定 具体操作:“组件 ...

  4. C# asp.net 操作Word的前提配置和简单的方法

    操作的前提: 1.要保证机器本身要安装OFFICE. 有时安装了Office,但是不能找到Microsoft Word 11.0(或者更高的版本) Object Library.那可能是因为在安装of ...

  5. Asp.Net 操作word 第二篇[推荐]

    引言:前段时间有项目要用c#生成Word格式的计算报告,通过网络查找到很多内容,但是都很凌乱,于是自己决定将具体的步骤总结整理出来,以便于更好的交流和以后相似问题可以迅速的解决! 现通过具体的示例演示 ...

  6. asp.net 操作word

    参考一:点击这里 参考二:点击这里 参考三:点击这里 using System; using System.Web.Security; using Microsoft.Office.Interop.W ...

  7. Aspose.Word 操作word复杂表格 拆分单元格 复制行 插入行 文字颜色

    private void button3_Click(object sender, EventArgs e)         {             object savePathWord =&q ...

  8. asp.net操作word 配置在IIS上出现的问题

    异常: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问. (异常来自 ...

  9. VBA操作word生成sql语句

    项目开始一般都是用word保存下数据库的文档 但是从表单一个一个的建表实在是很困难乏味,查查资料 1.可以生成一个html或者xml,检索结构生成sql.但是这个方式也蛮麻烦 2.查到vba可以操作w ...

随机推荐

  1. G - Self Numbers(2.2.1)

    G - Self Numbers(2.2.1) Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & % ...

  2. Python中列表的常用操作

    只整理重要常用的操作: append():尾部追加元素,参数只能为一个. extend():用列表扩展列表,参数为列表. insert():在指定位置插入元素,第一个参数为插入位置,第二个为参数为插入 ...

  3. EasyUI - LinkButton 按钮控件

    效果: html代码: <div> <a href ="abc.html" id="btn">添加</a> </div ...

  4. EasyUI - Tabs

    代码: 判断是不是已经存在,如果存在,则直接选中,否则创建新的tab. $('#tabs').tabs({ fit: true, border: false }) $('#Tree').tree({ ...

  5. 在github 网页上,删除已经建好的库

    在github 上面怎么删除已经建好的库 点击你要删除的库,然后找到Setting 找到如图所示的Delete 在输入框里面输入你要删除的库的名字 最后点击按钮,就可以删掉了

  6. 基于visual Studio2013解决面试题之0403串联字符串

     题目

  7. meta viewport标签的使用说明(手机浏览缩放控制)

    网页中有这么一句时,在iPhone的浏览器中将以原始大小显示,并不允许缩放. <meta name="viewport" content="width=device ...

  8. 键盘皇者 RealForce 104Pro独家评测

    http://tech.sina.cn/?sa=t84d20738943v44&page=2&pwt=rest2&vt=4&from=mbaidu&clickt ...

  9. Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET

    OSNIT_百度百科 Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET Salt Stack 官方文档翻译 分类: 自动运维 2013-04-02 11 ...

  10. hdu 4710 Balls Rearrangement 数论

    这个公倍数以后是循环的很容易找出来,然后循环以内的计算是打表找的规律,规律比较难表述,自己看代码吧.. #include <iostream> #include <cstdio> ...