通过Microsoft.Office.Interop.Word生成Word文档
1.引用类 WordReport.cs,代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop.Word;
using MSWord = Microsoft.Office.Interop.Word;
using System.Reflection;
using System.IO;
namespace CRM.Common
{
public class WordReport
{
private _Application wordApp = null;
private _Document wordDoc = null;
object unite = MSWord.WdUnits.wdStory;
Object Nothing = Missing.Value;
public _Application Application
{
get
{
return wordApp;
}
set
{
wordApp = value;
}
}
public _Document Document
{
get
{
return wordDoc;
}
set
{
wordDoc = value;
}
}
// 通过模板创建新文档
public void CreateNewDocument(string filePath)
{
try
{
killWinWordProcess();
wordApp = new ApplicationClass();
wordApp.DisplayAlerts = WdAlertLevel.wdAlertsNone;
wordApp.Visible = false;
object missing = System.Reflection.Missing.Value;
object templateName = filePath;
wordDoc = wordApp.Documents.Open(ref templateName, 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);
}
catch (Exception ex)
{
}
}
public void CreateNewDocument()
{
try
{
//killWinWordProcess();
wordApp = new ApplicationClass();
wordApp.DisplayAlerts = WdAlertLevel.wdAlertsNone;
wordApp.Visible = false;
Object Nothing = Missing.Value;
wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
}
catch (Exception ex)
{
}
}
// 保存新文件
public void SaveDocument(string filePath)
{
if (File.Exists((string)filePath))
{
File.Delete((string)filePath);
}
object fileName = filePath;
object format = WdSaveFormat.wdFormatDocument;//保存格式
object miss = System.Reflection.Missing.Value;
wordDoc.SaveAs(ref fileName, ref format, ref miss,
ref miss, ref miss, ref miss, ref miss,
ref miss, ref miss, ref miss, ref miss,
ref miss, ref miss, ref miss, ref miss,
ref miss);
//关闭wordDoc,wordApp对象
object SaveChanges = WdSaveOptions.wdSaveChanges;
object OriginalFormat = WdOriginalFormat.wdOriginalDocumentFormat;
object RouteDocument = false;
wordDoc.Close(ref SaveChanges, ref OriginalFormat, ref RouteDocument);
wordApp.Quit(ref SaveChanges, ref OriginalFormat, ref RouteDocument);
}
public void InsertText(string strContent)
{
//写入普通文本
wordDoc.Content.InsertAfter(strContent);
wordApp.Selection.EndKey(ref unite, ref Nothing); //将光标移动到文档末尾
}
public void InsertTitle(string strContent)
{
//写入普通文本
wordApp.Selection.EndKey(ref unite, ref Nothing