近日开发中用户要求实现导出数据为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. 火炬之光模型导出(Unity载入火炬之光的模型)

    先说明几点.导出方案可行,測试通过. python和blender的版本号一定要用下文中所说的.新的Python或者是新的Blender版本号都无法完美导入. 导入导出脚本能够选择 (http://c ...

  2. 【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列4

    Jobs (CJQ0, Jn, SNPn) Job进程运行用户定义的以及系统定义的类似于batch的任务.检查Job进程占用大量CPU资源的方法,就像检查用户进程一样. 可以根据以下视图检查Job进程 ...

  3. 也谈C#之Json,从Json字符串到类代码

    原文:也谈C#之Json,从Json字符串到类代码  阅读目录 json转类对象 逆思考 从json字符串自动生成C#类  json转类对象 自从.net 4.0开始,微软提供了一整套的针对json进 ...

  4. spring boot web相关配置

    spring boot集成了servlet容器,当我们在pom文件中增加spring-boot-starter-web的maven依赖时,不做任何web相关的配置便能提供web服务,这还得归于spri ...

  5. [置顶] oracle 数据库表中转换成java代码

    --数据库中字段java代码 select col.TABLE_NAME,replace(initcap(col.TABLE_NAME),'_', '')   , 'private '||decode ...

  6. C++基础之二:常量指针和指针常量

    1.常量指针 定义:具有只能够读取内存中数据,却不能够修改内存中数据的属性的指针,称为指向常量的指针,简称常量指针. 声明:const int * p; 注:可以将一个常量的地址赋值给一个对应类型的常 ...

  7. POJ 2186 Popular Cows (强联通)

    id=2186">http://poj.org/problem? id=2186 Popular Cows Time Limit: 2000MS   Memory Limit: 655 ...

  8. HTML5开发桌面应用:选择node-webkit还是有道heX

    近几年,移动应用和web2.0大行其道,相比之下.传统桌面应用程序开发显得相对冷清(包含该领域技术人才的后继力量),但在一些场景下,它依旧有其不可替代的优势. 将HTML5和Node.JS的技术优势. ...

  9. Swift - 环形进度条(UIActivityIndicatorView)的用法

    Swift中,除了条形进度条外,还有环形进度条,效果图如下: 1,环形进度条的基本属性 (1)Style: Large White:比较大的白色环形进度条 White:白色环形进度条 Gray:灰色环 ...

  10. android解析xml一直报错org.xmlpull.v1.XmlPullParserException

     错误: org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT @1:2 injava.io.String ...