根据word模板生成word表格报表文档(C#)
2008-02-28 11:36
711 查看
主要功能为根据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;
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:/Mywork/ExcelReportsServer/ReportServer/Tempalte/SmallList.doc";
//生成的具有模板样式的新文件
string FileName = @"C:/Documents and Settings/Administrator/桌面/" + 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 是设置字体的格式的地方
首先要生成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;
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:/Mywork/ExcelReportsServer/ReportServer/Tempalte/SmallList.doc";
//生成的具有模板样式的新文件
string FileName = @"C:/Documents and Settings/Administrator/桌面/" + 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 是设置字体的格式的地方
相关文章推荐
- 根据word模板生成word表格报表文档(C#)
- 根据word模板生成word表格报表文档(C#)
- C#根据word模板生成word表格报表文档
- C#根据WORD模板生成WORD文档 C#网页打印
- 根据标准word模板生成word文档类库(开源)
- poi生成word文档,插入图片,echar报表生成到word,word表格
- Java根据word模板生成word文档之Jacob和Httpclient简介
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)B
- JAVA根据ftl模板生成需要的多表格word文档
- Java根据word模板生成word文档之设计详细思路---word标签定义
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)C
- Java根据word模板生成word文档之总结
- 用C#动态生成Word文档并将数据填入Word表格中
- 用C#实现动态生成Word文档,在Word文档中插入表格,并将读出的数据填入到表格中
- Asp.net或C#使用word模板生成替换后的Word和pdf文档-总结
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)D
- [C#]用C#动态生成Word文档并将数据填入Word表格中
- word模板生成word报表文档
- 用C#动态生成Word文档并将数据填入Word表格中