- 浏览: 148047 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
liveandevil:
我的一直出现驱动找不到的错误 你那个驱动jar文件时放在哪里 ...
JDBC数据库通用DAO -
zouc816:
hi,wjm901215
我看你这篇文章对mapXtreme ...
用mapXtreme Java开发web gis应用 (下)
概要
loadTOCNode(1, 'summary');
本文分步介绍如何利用 Visual C# .NET 的自动化功能在 Word 中创建新文档。
要利用 Visual C# .NET 的自动化功能创建新的 Word 文档,请执行以下步骤:
代码执行完成后,检查为您创建的文档。该文档包含两页设置了格式的段落、表格和图表。
通过使用模板,可以精确地调整表格、段落和其他对象在文档中的布局,并可为这些对象添加格式设置。通过使用自动化功能,可以基于包含下面这样的代码的模板创建新文档:
代码示例
loadTOCNode(3, 'summary');本文中的代码示例将说明如何完成以下任务:• | 插入包含文本和格式的段落。 |
• | 浏览和修改文档中的不同范围。 |
• | 插入表格、设置表格格式并在表格中填充数据。 |
• | 添加图表。 |
1. | 启动 Microsoft Visual Studio .NET。在文件菜单上,单击新建,然后单击项目。在项目类型下,单击 Visual C# 项目,然后单击模板下的 Windows 应用程序。默认情况下会创建 Form1。 | ||||||
2. | 添加对 Microsoft Word 对象库的引用。为此,请按照下列步骤操作:
|
||||||
3. | 在视图菜单上,选择工具箱以显示工具箱,然后向 Form1 添加一个按钮。 | ||||||
4. | 双击 Button1。出现该窗体的代码窗口。 | ||||||
5. | 在代码窗口中,将以下代码
替换为:
|
||||||
6. | 滚动到代码窗口的顶部。将下面的代码行添加到 using 指令列表的末尾:
|
||||||
7. | 按 F5 键生成并运行程序。 | ||||||
8. | 单击 Button1,启动 Word 自动化功能并创建文档。 |
使用模板
loadTOCNode(3, 'summary');如果您要使用自动化功能创建的文档都是通用格式,则利用基于预设格式的模板的新文档来开始创建过程会更加容易。与从头创建文档相比,将某个模板与 Word 自动化客户端配合使用有两大优点:• | 您可以对整个文档中的对象的格式设置和布局施加更多控制。 |
• | 可以使用较少的代码创建文档。 |
object oTemplate = "c:\\MyTemplate.dot";
oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing,
ref oMissing, ref oMissing);
在模板中,可以定义书签,这样,自动化客户端就可以在文档的特定位置加入可变文本,如下所示:
object oBookMark = "MyBookmark";
oDoc.Bookmarks.Item(ref oBookMark).Range.Text = "Some Text Here";
使用模板的另一个优点在于,您可以创建和存储希望在运行时应用的格式样式,如下所示:
object oStyleName = "MyStyle";
oDoc.Bookmarks.Item(ref oBookMark).Range.set_Style(ref oStyleName);
- 或者 -
object oStyleName = "MyStyle";
oWord.Selection.set_Style(ref oStyleName);
参考
loadTOCNode(1, 'references');有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
Object sFileName = "C:\\Sample.doc";
301659 (http://support.microsoft.com/kb/301659/EN-US/) HOWTO:利用 Visual C# .NET 使 Microsoft Word 自动执行邮件合并
302902 (http://support.microsoft.com/kb/302902/EN-US/) HOWTO:用 Visual C# .NET 进行 Office 自动化服务器的绑定
有关详细信息,请访问下面的 Microsoft Developer Network (MSDN) 网站:
Microsoft Office Development with Visual Studio(使用 Visual Studio 进行 Microsoft Office 开发)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/vsofficedev.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/vsofficedev.asp)
Word in the Office (MSDN Online Article)(Office 中的 Word(MSDN 联机文章))
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office112000.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office112000.asp)
One More Word (MSDN Online Article)(补充说明(MSDN 联机文章))
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office12072000.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office12072000.asp)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/vsofficedev.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/vsofficedev.asp)
Word in the Office (MSDN Online Article)(Office 中的 Word(MSDN 联机文章))
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office112000.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office112000.asp)
One More Word (MSDN Online Article)(补充说明(MSDN 联机文章))
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office12072000.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnofftalk/html/office12072000.asp)
asp .net
default.aspx.cs
using System;
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;
using Microsoft.Office.Interop.Word;
using System.Reflection;
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;
using Microsoft.Office.Interop.Word;
using System.Reflection;
public partial class _Default : System.Web.UI.Page
{
{
protected void Page_Load(object sender, EventArgs e)
{
{
}
protected void Button1_Click(object sender, EventArgs e)
{
protected void Button1_Click(object sender, EventArgs e)
{
Application _wordApp = null;
_wordApp = new Application();
_wordApp = new Application();
_wordApp.Visible = true;
Object missing = Type.Missing;
object oMissing = System.Reflection.Missing.Value;
object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */
object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */
Object sFileName = "C:\\Sample.doc";
Documents docs = _wordApp.Documents;
Document doc = docs.Add(ref missing, ref missing, ref missing, ref missing);
doc.Activate();
doc.Activate();
Paragraph oPara1;
oPara1 = doc.Content.Paragraphs.Add(ref missing);
oPara1.Range.Text = "Heading 1";
oPara1.Range.Font.Bold = 1;
oPara1.Format.SpaceAfter = 24; //24 pt spacing after paragraph.
oPara1.Range.InsertParagraphAfter();
oPara1 = doc.Content.Paragraphs.Add(ref missing);
oPara1.Range.Text = "Heading 1";
oPara1.Range.Font.Bold = 1;
oPara1.Format.SpaceAfter = 24; //24 pt spacing after paragraph.
oPara1.Range.InsertParagraphAfter();
Paragraph oPara2;
object oRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oPara2 = doc.Content.Paragraphs.Add(ref oRng);
oPara2.Range.Text = "Heading 2";
oPara2.Format.SpaceAfter = 6;
oPara2.Range.InsertParagraphAfter();
object oRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oPara2 = doc.Content.Paragraphs.Add(ref oRng);
oPara2.Range.Text = "Heading 2";
oPara2.Format.SpaceAfter = 6;
oPara2.Range.InsertParagraphAfter();
Paragraph oPara3;
oRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oPara3 = doc.Content.Paragraphs.Add(ref oRng);
oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:";
oPara3.Range.Font.Bold = 0;
oPara3.Format.SpaceAfter = 24;
oPara3.Range.InsertParagraphAfter();
oRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oPara3 = doc.Content.Paragraphs.Add(ref oRng);
oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:";
oPara3.Range.Font.Bold = 0;
oPara3.Format.SpaceAfter = 24;
oPara3.Range.InsertParagraphAfter();
Microsoft.Office.Interop.Word.Table oTable;
Range wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oTable = doc.Tables.Add(wrdRng, 3, 5, ref oMissing, ref oMissing);
oTable.Range.ParagraphFormat.SpaceAfter = 6;
int r, c;
string strText;
for (r = 1; r <= 3; r++)
for (c = 1; c <= 5; c++)
{
strText = "r" + r + "c" + c;
oTable.Cell(r, c).Range.Text = strText;
}
oTable.Rows[1].Range.Font.Bold = 1;
oTable.Rows[1].Range.Font.Italic = 1;
Range wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oTable = doc.Tables.Add(wrdRng, 3, 5, ref oMissing, ref oMissing);
oTable.Range.ParagraphFormat.SpaceAfter = 6;
int r, c;
string strText;
for (r = 1; r <= 3; r++)
for (c = 1; c <= 5; c++)
{
strText = "r" + r + "c" + c;
oTable.Cell(r, c).Range.Text = strText;
}
oTable.Rows[1].Range.Font.Bold = 1;
oTable.Rows[1].Range.Font.Italic = 1;
Paragraph oPara4;
oRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oPara4 = doc.Content.Paragraphs.Add(ref oRng);
oPara4.Range.InsertParagraphBefore();
oPara4.Range.Text = "And here's another table:";
oPara4.Format.SpaceAfter = 24;
oPara4.Range.InsertParagraphAfter();
oRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oPara4 = doc.Content.Paragraphs.Add(ref oRng);
oPara4.Range.InsertParagraphBefore();
oPara4.Range.Text = "And here's another table:";
oPara4.Format.SpaceAfter = 24;
oPara4.Range.InsertParagraphAfter();
wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oTable = doc.Tables.Add(wrdRng, 5, 2, ref oMissing, ref oMissing);
oTable.Range.ParagraphFormat.SpaceAfter = 6;
for (r = 1; r <= 5; r++)
for (c = 1; c <= 2; c++)
{
strText = "r" + r + "c" + c;
oTable.Cell(r, c).Range.Text = strText;
}
oTable.Columns[1].Width = _wordApp.InchesToPoints(2); //Change width of columns 1 & 2
oTable.Columns[2].Width = _wordApp.InchesToPoints(3);
oTable = doc.Tables.Add(wrdRng, 5, 2, ref oMissing, ref oMissing);
oTable.Range.ParagraphFormat.SpaceAfter = 6;
for (r = 1; r <= 5; r++)
for (c = 1; c <= 2; c++)
{
strText = "r" + r + "c" + c;
oTable.Cell(r, c).Range.Text = strText;
}
oTable.Columns[1].Width = _wordApp.InchesToPoints(2); //Change width of columns 1 & 2
oTable.Columns[2].Width = _wordApp.InchesToPoints(3);
//Keep inserting text. When you get to 7 inches from top of the
//document, insert a hard page break.
object oPos;
double dPos = _wordApp.InchesToPoints(7);
doc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertParagraphAfter();
do
{
wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
wrdRng.ParagraphFormat.SpaceAfter = 6;
wrdRng.InsertAfter("A line of text");
wrdRng.InsertParagraphAfter();
oPos = wrdRng.get_Information
(WdInformation.wdVerticalPositionRelativeToPage);
}
while (dPos >= Convert.ToDouble(oPos));
object oCollapseEnd = WdCollapseDirection.wdCollapseEnd;
object oPageBreak = WdBreakType.wdPageBreak;
wrdRng.Collapse(ref oCollapseEnd);
wrdRng.InsertBreak(ref oPageBreak);
wrdRng.Collapse(ref oCollapseEnd);
wrdRng.InsertAfter("We're now on page 2. Here's my chart:");
wrdRng.InsertParagraphAfter();
//document, insert a hard page break.
object oPos;
double dPos = _wordApp.InchesToPoints(7);
doc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertParagraphAfter();
do
{
wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
wrdRng.ParagraphFormat.SpaceAfter = 6;
wrdRng.InsertAfter("A line of text");
wrdRng.InsertParagraphAfter();
oPos = wrdRng.get_Information
(WdInformation.wdVerticalPositionRelativeToPage);
}
while (dPos >= Convert.ToDouble(oPos));
object oCollapseEnd = WdCollapseDirection.wdCollapseEnd;
object oPageBreak = WdBreakType.wdPageBreak;
wrdRng.Collapse(ref oCollapseEnd);
wrdRng.InsertBreak(ref oPageBreak);
wrdRng.Collapse(ref oCollapseEnd);
wrdRng.InsertAfter("We're now on page 2. Here's my chart:");
wrdRng.InsertParagraphAfter();
//Insert a chart.
InlineShape oShape;
object oClassType = "MSGraph.Chart.8";
wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oShape = wrdRng.InlineShapes.AddOLEObject(ref oClassType, ref oMissing,
ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing);
InlineShape oShape;
object oClassType = "MSGraph.Chart.8";
wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oShape = wrdRng.InlineShapes.AddOLEObject(ref oClassType, ref oMissing,
ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing);
//Demonstrate use of late bound oChart and oChartApp objects to
//manipulate the chart object with MSGraph.
object oChart;
object oChartApp;
oChart = oShape.OLEFormat.Object;
oChartApp = oChart.GetType().InvokeMember("Application",
BindingFlags.GetProperty, null, oChart, null);
//manipulate the chart object with MSGraph.
object oChart;
object oChartApp;
oChart = oShape.OLEFormat.Object;
oChartApp = oChart.GetType().InvokeMember("Application",
BindingFlags.GetProperty, null, oChart, null);
//Change the chart type to Line.
object[] Parameters = new Object[1];
Parameters[0] = 4; //xlLine = 4
oChart.GetType().InvokeMember("ChartType", BindingFlags.SetProperty,
null, oChart, Parameters);
object[] Parameters = new Object[1];
Parameters[0] = 4; //xlLine = 4
oChart.GetType().InvokeMember("ChartType", BindingFlags.SetProperty,
null, oChart, Parameters);
//Update the chart image and quit MSGraph.
oChartApp.GetType().InvokeMember("Update",
BindingFlags.InvokeMethod, null, oChartApp, null);
oChartApp.GetType().InvokeMember("Quit",
BindingFlags.InvokeMethod, null, oChartApp, null);
//... If desired, you can proceed from here using the Microsoft Graph
//Object model on the oChart and oChartApp objects to make additional
//changes to the chart.
oChartApp.GetType().InvokeMember("Update",
BindingFlags.InvokeMethod, null, oChartApp, null);
oChartApp.GetType().InvokeMember("Quit",
BindingFlags.InvokeMethod, null, oChartApp, null);
//... If desired, you can proceed from here using the Microsoft Graph
//Object model on the oChart and oChartApp objects to make additional
//changes to the chart.
//Set the width of the chart.
oShape.Width = _wordApp.InchesToPoints(6.25f);
oShape.Height = _wordApp.InchesToPoints(3.57f);
oShape.Width = _wordApp.InchesToPoints(6.25f);
oShape.Height = _wordApp.InchesToPoints(3.57f);
//Add text after the chart.
wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
wrdRng.InsertParagraphAfter();
wrdRng.InsertAfter("THE END.");
wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;
wrdRng.InsertParagraphAfter();
wrdRng.InsertAfter("THE END.");
doc.SaveAs(ref sFileName, 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);
doc.Close(ref missing, ref missing, ref missing);
_wordApp.Quit(ref missing, ref missing, ref missing);
_wordApp = null;
doc.Close(ref missing, ref missing, ref missing);
_wordApp.Quit(ref missing, ref missing, ref missing);
_wordApp = null;
}
}
}
相关推荐
Visual C# .NET程序设计经典。经典编程实例源代码,分章节发送。
MCAD-MCSD制胜宝典—用Visual Basic .NET和Visual C#.NET开发XML Web服务与服务器组件。
Visual C# .NET程序设计经典 配套光盘 科学工业出版社
本书是一本讲解如何通过Visual C#.NET开发应用软件的书籍,它以5个实际项目为依托,全面而系统地再现了项目开发的实际过程,具有很大的实用价值和参考意义。 全书首先介绍SQL Server 2000基础知识、ADO.NET基础...
Visual C#.NET开发实践:Visual C#.NET开发实践.rar
应用程序设计编制(Visual C#平台)Visual C# .NET试题汇编(程序员级)
部分则着重介绍了使用visual c# .net创建可用于web的应用程序的方 法和相关技术,介绍了soap和web服务。 本书适合于具有一定的编程经验、想要学习使用visual c# .net编程 语言的开发人员。
Visual C#.NET数据库开发经典案例解析 王晟编著
Visual C#.NET网络编程Visual C#.NET网络编程
Visual C#.NET 程序设计教程课后答案(罗福强、白忠建)习题答案1-14
Visual C# .NET 网络核心编程
综合应用案例篇通过“类联众游戏大厅的网络象棋”综合性案例,配以详细的代码说明和图片解释,使读者在掌握原理篇中提供的技术或技巧后,使用这些技术尝试实现更为复杂的功能,在实践中掌握和领会Visual C#.NET编程...
包括ppt课件和随书源代码,颇具参考价值……
这个是我从学校图书馆上下载的数字图像处理--Visual C#.NET编程与实验光盘镜像,解压以后得到iso的镜像文件
Visual C#.NET数据库开发经典案例解析之生产管理系统 完整的文档说明,适合刚接触java数据库开发编程的朋友
非常经典的高校C# .net开发教程,《Visual C#.NET程序设计》作者,李兰友,杨晓光,清华出版社,北交出版社,含有书籍和源码。 本书主要介绍Visual C#.NET应用程序设计技术。内容包括:Visual C#.NET集成环境,常用...
深入解析Visual C#.Net,需要有一定的编程基础
8 Visual C#.NET 入门与进阶 programmimg
介绍使用Visual C#.NET来开发网络程序的
Visual C#.NET案例开发集锦 源代码类