`
javatoyou
  • 浏览: 1083599 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

C#也能动态生成Word文档并填充数据

 
阅读更多

  要使用C#操作word,首先要添加引用:

1、添加引用->COM->Microsoft Word 11.0 Object Library

2、在.cs文件中添加

using Word;
下面的例子中包括C#对Word文档的创建、插入表格、设置样式等操作:

(例子中代码有些涉及数据信息部分被省略,重要是介绍一些C#操作word文档的方法)

public string CreateWordFile( string CheckedInfo)
... {
string message = "" ;
try
... {
ObjectNothing
= System.Reflection.Missing.Value;
Directory.CreateDirectory(
" C:/CNSI " ); // 创建文件所在目录
string name = " CNSI_ " + DateTime.Now.ToShortString() + " .doc " ;
object filename = " C://CNSI// " + name; // 文件保存路径
// 创建Word文档
Word.ApplicationWordApp = new Word.ApplicationClass();
Word.DocumentWordDoc
= WordApp.Documents.Add( ref Nothing, ref Nothing, ref Nothing, ref Nothing);

// 添加页眉
WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;
WordApp.ActiveWindow.View.SeekView
= WdSeekView.wdSeekPrimaryHeader;
WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(
" [页眉内容] " );
WordApp.Selection.ParagraphFormat.Alignment
= Word.WdParagraphAlignment.wdAlignParagraphRight; // 设置右对齐
WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; // 跳出页眉设置

WordApp.Selection.ParagraphFormat.LineSpacing
= 15f; // 设置文档的行间距

// 移动焦点并换行
object count = 14 ;
object WdLine = Word.WdUnits.wdLine; // 换一行;
WordApp.Selection.MoveDown( ref WdLine, ref count, ref Nothing); // 移动焦点
WordApp.Selection.TypeParagraph(); // 插入段落

// 文档中创建表格
Word.TablenewTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12 , 3 , ref Nothing, ref Nothing);
// 设置表格样式
newTable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleThickThinLargeGap;
newTable.Borders.InsideLineStyle
= Word.WdLineStyle.wdLineStyleSingle;
newTable.Columns[
1 ].Width = 100f;
newTable.Columns[
2 ].Width = 220f;
newTable.Columns[
3 ].Width = 105f;

// 填充表格内容
newTable.Cell( 1 , 1 ).Range.Text = " 产品详细信息表 " ;
newTable.Cell(
1 , 1 ).Range.Bold = 2 ; // 设置单元格中字体为粗体
// 合并单元格
newTable.Cell( 1 , 1 ).Merge(newTable.Cell( 1 , 3 ));
WordApp.Selection.Cells.VerticalAlignment
= Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; // 垂直居中
WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; // 水平居中

// 填充表格内容
newTable.Cell( 2 , 1 ).Range.Text = " 产品基本信息 " ;
newTable.Cell(
2 , 1 ).Range.Font.Color = Word.WdColor.wdColorDarkBlue; // 设置单元格内字体颜色
// 合并单元格
newTable.Cell( 2 , 1 ).Merge(newTable.Cell( 2 , 3 ));
WordApp.Selection.Cells.VerticalAlignment
= Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;

// 填充表格内容
newTable.Cell( 3 , 1 ).Range.Text = " 品牌名称: " ;
newTable.Cell(
3 , 2 ).Range.Text = BrandName;
// 纵向合并单元格
newTable.Cell( 3 , 3 ).Select(); // 选中一行
object moveUnit = Word.WdUnits.wdLine;
object moveCount = 5 ;
object moveExtend = Word.WdMovementType.wdExtend;
WordApp.Selection.MoveDown(
ref moveUnit, ref moveCount, ref moveExtend);
WordApp.Selection.Cells.Merge();
// 插入图片
string FileName = Picture; // 图片所在路径
object LinkToFile = false ;
object SaveWithDocument = true ;
object Anchor = WordDoc.Application.Selection.Range;
WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName,
ref LinkToFile, ref SaveWithDocument, ref Anchor);
WordDoc.Application.ActiveDocument.InlineShapes[
1 ].Width = 100f; // 图片宽度
WordDoc.Application.ActiveDocument.InlineShapes[ 1 ].Height = 100f; // 图片高度
// 将图片设置为四周环绕型
Word.Shapes = WordDoc.Application.ActiveDocument.InlineShapes[ 1 ].ConvertToShape();
s.WrapFormat.Type
= Word.WdWrapType.wdWrapSquare;

newTable.Cell(
12 , 1 ).Range.Text = " 产品特殊属性 " ;
newTable.Cell(
12 , 1 ).Merge(newTable.Cell( 12 , 3 ));
// 在表格中增加行
WordDoc.Content.Tables[ 1 ].Rows.Add( ref Nothing);

WordDoc.Paragraphs.Last.Range.Text
= " 文档创建时间: " + DateTime.Now.ToString(); // “落款”
WordDoc.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;

// 文件保存
WordDoc.SaveAs( ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
WordDoc.Close(
ref Nothing, ref Nothing, ref Nothing);
WordApp.Quit(
ref Nothing, ref Nothing, ref Nothing);
message
= name + " 文档生成成功,以保存到C:CNSI下 " ;
}

catch
... {
message
= " 文件导出异常! " ;
}

return message;
}

分享到:
评论

相关推荐

    Asp.net动态生成Word文档并填充数据

    Asp.net 动态生成 Word 文档并填充数据 Asp.net 动态生成 Word 文档并填充数据是指使用 Asp.net 框架生成 Word 文档并填充数据的过程。在这个过程中,我们需要使用 Word 的 COM 组件来生成 Word 文档,并使用 Asp...

    用C#动态生成Word文档并将数据填入Word表格中

    ### 使用C#动态生成Word文档并将数据填入Word表格中的技术要点 在现代办公环境中,自动化处理文档变得越来越重要。特别是在需要频繁生成报告、发票或其他标准化格式文档的情况下,利用编程语言来实现文档的自动化...

    C#编程实现动态生成Word文档

    在C#编程中,动态生成Word文档是一种常见的需求,尤其在报表生成、自动化报告或数据导出场景下。为了实现这一功能,我们需要利用Microsoft Office的COM接口,这允许我们在C#程序中直接操控Word对象模型。以下是使用...

    C#动态生成word文档

    C#动态生成word文档是指使用C#语言编程来生成Word文档,并填充数据的过程。要实现这个功能,首先需要添加引用:添加引用->COM->Microsoft Word 11.0 Object Library。然后在.cs文件中添加using Word;语句。 下面是...

    C#向word文档动态插入数据并打印预览

    Microsoft.Office.Interop.Word.Application myWordApp = null; Microsoft.Office.Interop.Word.Document doc = null; object Filename = path + "\\" + TaskID + ".docx";//目的文件 object templateFile = ...

    利用C#语言动态生成Word文档

    【标题】:利用C#语言动态生成Word文档 【描述】:在IT行业中,动态生成Word文档是一种常见的需求,例如在报表自动化、合同模板填充等场景。本篇将详细介绍如何使用C#编程语言来动态创建和填充Word文档。C#结合...

    c#根据word模板生成新word文档

    在C#编程中,生成基于Word模板的新Word文档是一项常见的任务,特别是在自动化报告生成、数据填充或批量文档处理等场景中。Word模板允许开发者预先设计好文档格式,然后通过编程方式替换占位符来生成定制化的文档。...

    ASP.NET(c#) 从零动态生成Word文件(用程序设置文本段落格式、填充数据)

    使用的是PageOffice,除了提供Word/Excel动态数据填充,格式控制,Word/Excel用户输入提交,Word/Excel/PowerPoint/WPS等Office文档的在线打开、只读浏览、编辑、保存等功能外,还给在线协同办公内置了强大的支持...

    C#动态生成含有图片、图标、表格的Word并保存

    在IT行业中,C#是一种广泛使用的...总的来说,动态生成Word文档在很多场景下都非常有用,比如自动化报告生成、数据导出或自定义文档模板。理解并掌握这个技术,能够极大地提高工作效率,尤其是在处理大量结构化数据时。

    C# 填充Word模版并打印

    在C#编程环境中,填充Word模板并进行打印是一项常见的任务,尤其在自动化文档生成和报告制作的场景下。本文将详细解析如何利用C#、Microsoft Office Interop库以及Word模板来实现这一功能。 首先,我们需要了解`...

    C# 生成Word,带图表,NPoi

    以下是使用NPoi生成Word文档的基本步骤: 1. 引入NPoi库:确保在项目中引用了NPoi库,可以通过NuGet包管理器安装。 2. 创建Word文档:首先,需要创建一个`Document`对象,这将作为Word文档的基础结构。 3. 添加...

    C# 根据Word模版生成Word文件

    在C#编程中,生成Word文件常常用于自动化报告生成、文档模板填充等场景。通过引用Microsoft Office Interop库,我们可以直接操作Word对象模型,实现基于Word模板生成新的Word文档。以下是一个具体的C#方法,用于根据...

    C#操作Word文档(根据模板生成文档、替换内容、插入表格等)

    在实际应用中,可能会涉及到更复杂的逻辑,如循环遍历数据源并动态生成表格,或者读取外部数据来填充文档。这种情况下,可以结合使用C#的数据访问和处理能力,如ADO.NET、Entity Framework等,以实现更强大的自动化...

    PageOffice C# 动态填充Word模版生成正式Word文件

    总的来说,PageOffice提供了一套高效、便捷的解决方案,使开发者能以C#语言快速实现Word模板的动态填充和文件生成,极大地提高了文档处理的效率和灵活性。通过深入理解和熟练运用FileMaker控件,可以满足各种复杂...

    C#动态生成Word

    此程序更加XML(wordtest.xml)配置文件动态生成WORD文档,支持固定表格、列表表格、根据DataSet中Table个数生成多个同一表格,表格可以合并行或列,字体和颜色都可以设置,页眉页脚也可以设置。

    C# NPOI生成word插入图片和表格

    将这些数据组织成表格格式,然后使用NPOI生成Word文档并插入相应的表格。 总结一下,C#和NPOI的组合使得在Word文档中动态生成内容变得非常方便。无论是插入表格展示数据,还是插入图片增强视觉效果,NPOI都提供了...

    c#根据word模板生成word文档

    本主题聚焦于如何利用C#来根据Word模板生成Word文档,这在自动化报告生成、批量文档处理等场景中非常实用。下面将详细介绍这个过程,并涉及到相关的技术点。 首先,我们需要一个基础的Word模板,这个模板包含了我们...

    C#导出WORD动态图表

    本话题主要探讨如何使用C#在ASP.NET中通过DocX库来操作Word文件,以实现动态生成Word文档中的图表功能。 首先,`DocX`是一个开源的C#库,允许开发者在不使用Microsoft Office Interop的情况下,对Microsoft Word ....

    java 根据word模板生成word 文档

    在现代企业级应用中,动态生成Word文档的需求日益增多,尤其是在报表生成、文档自动生成等领域。Java作为一种广泛使用的编程语言,提供了多种方法来根据Word模板生成Word文档,而Jacob库就是其中一种非常实用且功能...

    C#生成word文档

    ### C#生成Word文档知识点详解 #### 一、概述 在C#开发环境中,通过编程方式自动生成Word文档是一项常见的需求。特别是在企业级应用中,经常需要根据数据库中的数据动态生成报告、合同或其他类型的文档。本篇将详细...

Global site tag (gtag.js) - Google Analytics