日期:2014-05-16 浏览次数:20924 次
近日开发中用户要求实现导出数据为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相关的引用:
...
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开发服务器下运行正常。