主要功能為根據word模板生成word報表文檔,注意引用Interop.Word.dll;
首先要生成word程序對象
Word.Application app = new Word.Application();
根據模板文件生成新文件框架
File.Copy(TemplateFile, FileName);
生成documnet對象
ord.Document doc = new Word.Document();
??????? 打開新文擋
??????? doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
??????????? ref missing, ref missing, ref missing, ref missing,
??????????? ref missing, ref missing, ref missing, ref Visible,
??????????? ref missing, ref missing, ref missing,
??????????? ref missing);
??????? doc.Activate();
將光標定位到新的書簽(模板中定義了書簽的位置),下面代碼為在光標位置輸出一行,然后回車
??????? //光標轉到書簽
??????? for (int bookIndex = 0; bookIndex < 5; bookIndex++)
??????? {
??????????? object BookMarkName = "BookMark" + bookIndex.ToString();
??????????? object what = Word.WdGoToItem.wdGoToBookmark;
??????????? doc.ActiveWindow.Selection.GoTo(ref what, ref missing, ref missing, ref BookMarkName);
??????????? doc.ActiveWindow.Selection.TypeText("文明單位" + bookIndex.ToString() + "zaddd??? 25????? 大學");
??????????? doc.ActiveWindow.Selection.TypeParagraph();
??????? }
輸出完畢后,最后關閉doc對象
??????? object IsSave = true;
??????? doc.Close(ref IsSave, ref missing, ref missing);
完整事例代碼如下:
using?System.IO;
using?System.Data;
using?System.Configuration;
using?System.Web;
using?System.Web.Security;
using?System.Web.UI;
using?System.Web.UI.WebControls;
using?System.Web.UI.WebControls.WebParts;
using?System.Web.UI.HtmlControls;
public?partial?class?_Default?:?System.Web.UI.Page?
{
????protected?void?Page_Load(object?sender,?EventArgs?e)
????{
????}
????protected?void?Button1_Click(object?sender,?EventArgs?e)
????{
????????Word.Application?app?=?new?Word.Application();
????????//模板文件
????????string?TemplateFile?=?@"D:MyworkExcelReportsServerReportServerTempalteSmallList.doc";
????????//生成的具有模板樣式的新文件
????????string?FileName?=?@"C:Documents?and?SettingsAdministrator桌面"?+?DateTime.Now.ToString("yyyyMMddHHmmssfffffff")+".doc";
????????//模板文件拷貝到新文件
????????File.Copy(TemplateFile,?FileName);
????????Word.Document?doc?=?new?Word.Document();
????????object?Obj_FileName?=?FileName;
????????object?Visible?=?false;
????????object?ReadOnly?=?false;
????????object?missing?=?System.Reflection.Missing.Value;
????????//打開文件
????????doc?=?app.Documents.Open(ref?Obj_FileName,?ref?missing,?ref?ReadOnly,?ref?missing,
????????????ref?missing,?ref?missing,?ref?missing,?ref?missing,
????????????ref?missing,?ref?missing,?ref?missing,?ref?Visible,
????????????ref?missing,?ref?missing,?ref?missing,
????????????ref?missing);
????????doc.Activate();
????????//光標轉到書簽
????????for?(int?bookIndex?=?0;?bookIndex?<?5;?bookIndex++)
????????{
????????????object?BookMarkName?=?"BookMark"?+?bookIndex.ToString();
????????????object?what?=?Word.WdGoToItem.wdGoToBookmark;
????????????doc.ActiveWindow.Selection.GoTo(ref?what,?ref?missing,?ref?missing,?ref?BookMarkName);
????????????doc.ActiveWindow.Selection.TypeText("文明單位"?+?bookIndex.ToString()?+?"zaddd????25??????大學");
????????????doc.ActiveWindow.Selection.TypeParagraph();
????????}
????????object?IsSave?=?true;
????????doc.Close(ref?IsSave,?ref?missing,?ref?missing);
????????Response.Write("<script?language='javascript'>alert('生成模板成功!')</script>");
????}
}
?
附:
光標到 書簽Title 的位置
object BookMarkName="Title";
object what =Word.WdGoToItem.wdGoToBookmark;
Doc.ActiveWindow.Selection.GoTo(ref what ,ref missing,ref missing,ref BookMarkName);???????????????????????
在當前的光標寫文本
Doc.ActiveWindow.Selection.TypeText("變更通知");
當前的光標換行
Doc.ActiveWindow.Selection.TypeParagraph();
當前的光標設置格式(舉例 對齊方式)????????????????????????????????????????????????????????????? Doc.ActiveWindow.Selection.ParagraphFormat.Alignment=Word.WdParagraphAlignment.wdAlignParagraphRight;
注意 ParagraphFormat 是設置字體的格式的地方