html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

C#编程实现动态生成Word文档_.NET教程_编程技术

[ ] 已经帮助:人解决问题
如何用C#编程实现动态生成Word文档并填充数据的效果呢?要使用C#操作word,首先要添加引用

    1、添加引用->COM->Microsoft Word 11.0 Object LibrarynFPHTML5中文学习网 - HTML5先行者学习网

    2、在.cs文件中添加nFPHTML5中文学习网 - HTML5先行者学习网

    using  Word;nFPHTML5中文学习网 - HTML5先行者学习网

    下面的例子中包括C#对Word文档的创建、插入表格、设置样式等操作:nFPHTML5中文学习网 - HTML5先行者学习网

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

    public   string  CreateWordFile( string  CheckedInfo)nFPHTML5中文学习网 - HTML5先行者学习网

    ... {nFPHTML5中文学习网 - HTML5先行者学习网

    string  message  =   "" ;nFPHTML5中文学习网 - HTML5先行者学习网

    trynFPHTML5中文学习网 - HTML5先行者学习网

    ... {nFPHTML5中文学习网 - HTML5先行者学习网

    Object Nothing  =  System.Reflection.Missing.Value;nFPHTML5中文学习网 - HTML5先行者学习网

    Directory.CreateDirectory( " C:/CNSI " );   // 创建文件所在目录nFPHTML5中文学习网 - HTML5先行者学习网

    string  name  =   " CNSI_ "   +  DateTime.Now.ToShortString() + " .doc " ;nFPHTML5中文学习网 - HTML5先行者学习网

    object  filename  =   " C://CNSI// "   +  name;   // 文件保存路径nFPHTML5中文学习网 - HTML5先行者学习网

    // 创建Word文档nFPHTML5中文学习网 - HTML5先行者学习网

    Word.Application WordApp  =   new  Word.ApplicationClass();nFPHTML5中文学习网 - HTML5先行者学习网

    Word.Document WordDoc  =  WordApp.Documents.Add( ref  Nothing,  ref  Nothing,  ref  Nothing,  ref  Nothing);nFPHTML5中文学习网 - HTML5先行者学习网

    // 添加页眉nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.ActiveWindow.View.Type  =  WdViewType.wdOutlineView;nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.ActiveWindow.View.SeekView  =  WdSeekView.wdSeekPrimaryHeader;nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.ActiveWindow.ActivePane.Selection.InsertAfter( " [页眉内容] " );nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Selection.ParagraphFormat.Alignment  =  Word.WdParagraphAlignment.wdAlignParagraphRight; // 设置右对齐nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.ActiveWindow.View.SeekView  =  WdSeekView.wdSeekMainDocument; // 跳出页眉设置nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Selection.ParagraphFormat.LineSpacing  =  15f; // 设置文档的行间距nFPHTML5中文学习网 - HTML5先行者学习网

    // 移动焦点并换行nFPHTML5中文学习网 - HTML5先行者学习网

    object  count  =   14 ;nFPHTML5中文学习网 - HTML5先行者学习网

    object  WdLine  =  Word.WdUnits.wdLine; // 换一行;nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Selection.MoveDown( ref  WdLine,  ref  count,  ref  Nothing); // 移动焦点nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Selection.TypeParagraph(); // 插入段落nFPHTML5中文学习网 - HTML5先行者学习网

    // 文档中创建表格nFPHTML5中文学习网 - HTML5先行者学习网

    Word.Table newTable  =  WordDoc.Tables.Add(WordApp.Selection.Range,  12 ,  3 ,  ref  Nothing,  ref  Nothing);nFPHTML5中文学习网 - HTML5先行者学习网

    // 设置表格样式nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Borders.OutsideLineStyle  =  Word.WdLineStyle.wdLineStyleThickThinLargeGap;nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Borders.InsideLineStyle  =  Word.WdLineStyle.wdLineStyleSingle;nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Columns[ 1 ].Width  =  100f;nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Columns[ 2 ].Width  =  220f;nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Columns[ 3 ].Width  =  105f;nFPHTML5中文学习网 - HTML5先行者学习网

    // 填充表格内容nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 1 ,  1 ).Range.Text  =   " 产品详细信息表 " ;nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 1 ,  1 ).Range.Bold  =   2 ; // 设置单元格中字体为粗体nFPHTML5中文学习网 - HTML5先行者学习网

    // 合并单元格nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 1 ,  1 ).Merge(newTable.Cell( 1 ,  3 ));nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Selection.Cells.VerticalAlignment  =  Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; // 垂直居中nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Selection.ParagraphFormat.Alignment  =  Word.WdParagraphAlignment.wdAlignParagraphCenter; // 水平居中nFPHTML5中文学习网 - HTML5先行者学习网

// 填充表格内容nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 2 ,  1 ).Range.Text  =   " 产品基本信息 " ;nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 2 ,  1 ).Range.Font.Color  =  Word.WdColor.wdColorDarkBlue; // 设置单元格内字体颜色nFPHTML5中文学习网 - HTML5先行者学习网

    // 合并单元格nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 2 ,  1 ).Merge(newTable.Cell( 2 ,  3 ));nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Selection.Cells.VerticalAlignment  =  Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;nFPHTML5中文学习网 - HTML5先行者学习网

    // 填充表格内容nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 3 ,  1 ).Range.Text  =   " 品牌名称: " ;nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 3 ,  2 ).Range.Text  =  BrandName;nFPHTML5中文学习网 - HTML5先行者学习网

    // 纵向合并单元格nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 3 ,  3 ).Select(); // 选中一行nFPHTML5中文学习网 - HTML5先行者学习网

    object  moveUnit  =  Word.WdUnits.wdLine;nFPHTML5中文学习网 - HTML5先行者学习网

    object  moveCount  =   5 ;nFPHTML5中文学习网 - HTML5先行者学习网

    object  moveExtend  =  Word.WdMovementType.wdExtend;nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Selection.MoveDown( ref  moveUnit,  ref  moveCount,  ref  moveExtend);nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Selection.Cells.Merge();nFPHTML5中文学习网 - HTML5先行者学习网

    // 插入图片nFPHTML5中文学习网 - HTML5先行者学习网

    string  FileName  =  Picture; // 图片所在路径nFPHTML5中文学习网 - HTML5先行者学习网

    object  LinkToFile  =   false ;nFPHTML5中文学习网 - HTML5先行者学习网

    object  SaveWithDocument  =   true ;nFPHTML5中文学习网 - HTML5先行者学习网

    object  Anchor  =  WordDoc.Application.Selection.Range;nFPHTML5中文学习网 - HTML5先行者学习网

    WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName,  ref  LinkToFile,  ref  SaveWithDocument,  ref  Anchor);nFPHTML5中文学习网 - HTML5先行者学习网

    WordDoc.Application.ActiveDocument.InlineShapes[ 1 ].Width  =  100f; // 图片宽度nFPHTML5中文学习网 - HTML5先行者学习网

    WordDoc.Application.ActiveDocument.InlineShapes[ 1 ].Height  =  100f; // 图片高度nFPHTML5中文学习网 - HTML5先行者学习网

    // 将图片设置为四周环绕型nFPHTML5中文学习网 - HTML5先行者学习网

    Word.Shape s  =  WordDoc.Application.ActiveDocument.InlineShapes[ 1 ].ConvertToShape();nFPHTML5中文学习网 - HTML5先行者学习网

    s.WrapFormat.Type  =  Word.WdWrapType.wdWrapSquare;nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 12 ,  1 ).Range.Text  =   " 产品特殊属性 " ;nFPHTML5中文学习网 - HTML5先行者学习网

    newTable.Cell( 12 ,  1 ).Merge(newTable.Cell( 12 ,  3 ));nFPHTML5中文学习网 - HTML5先行者学习网

    // 在表格中增加行nFPHTML5中文学习网 - HTML5先行者学习网

    WordDoc.Content.Tables[ 1 ].Rows.Add( ref  Nothing);nFPHTML5中文学习网 - HTML5先行者学习网

    WordDoc.Paragraphs.Last.Range.Text  =   " 文档创建时间: "   +  DateTime.Now.ToString(); // “落款”nFPHTML5中文学习网 - HTML5先行者学习网

    WordDoc.Paragraphs.Last.Alignment  =  Word.WdParagraphAlignment.wdAlignParagraphRight;nFPHTML5中文学习网 - HTML5先行者学习网

    // 文件保存nFPHTML5中文学习网 - HTML5先行者学习网

    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);nFPHTML5中文学习网 - HTML5先行者学习网

    WordDoc.Close( ref  Nothing,  ref  Nothing,  ref  Nothing);nFPHTML5中文学习网 - HTML5先行者学习网

    WordApp.Quit( ref  Nothing,  ref  Nothing,  ref  Nothing);nFPHTML5中文学习网 - HTML5先行者学习网

    message = name + " 文档生成成功,以保存到C:CNSI下 " ;nFPHTML5中文学习网 - HTML5先行者学习网

    }nFPHTML5中文学习网 - HTML5先行者学习网

    catchnFPHTML5中文学习网 - HTML5先行者学习网

    ... {nFPHTML5中文学习网 - HTML5先行者学习网

    message  =   " 文件导出异常! " ;nFPHTML5中文学习网 - HTML5先行者学习网

    }nFPHTML5中文学习网 - HTML5先行者学习网

    return  message;nFPHTML5中文学习网 - HTML5先行者学习网

    }nFPHTML5中文学习网 - HTML5先行者学习网

nFPHTML5中文学习网 - HTML5先行者学习网
nFPHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助