码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2016-03-17 16:14:11      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

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

http://www.cnblogs.com/qyfan82/archive/2007/09/14/893293.html

引用http://blog.csdn.net/mengyao/archive/2007/09/13/1784079.aspx

using System;
技术分享using System.Collections.Generic;
技术分享using System.ComponentModel;
技术分享using System.Data;
技术分享using System.Drawing;
技术分享using System.Text;
技术分享using System.Windows.Forms;
技术分享using System.IO;
技术分享using Microsoft.Office.Interop.Word;
  public string CreateWordFile(string CheckedInfo)

{

 string message = "";

Object Nothing = System.Reflection.Missing.Value;
技术分享                Directory.CreateDirectory("C:/CNSI");  //创建文件所在目录
技术分享                string name = "CNSI_" + DateTime.Now.ToLongDateString()+".doc";
技术分享                object filename = "C://CNSI//" + name;  //文件保存路径
技术分享                //创建Word文档
技术分享                Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
技术分享                Microsoft.Office.Interop.Word.Document WordDoc = 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 = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//设置右对齐
技术分享                WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;//跳出页眉设置
技术分享
技术分享                WordApp.Selection.ParagraphFormat.LineSpacing = 15f;//设置文档的行间距
技术分享
技术分享                //移动焦点并换行
技术分享                object count = 14;
技术分享                object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdLine;//换一行;
技术分享                 WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点
技术分享                 WordApp.Selection.TypeParagraph();//插入段落
技术分享
技术分享                 //文档中创建表格
技术分享                 Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 123ref Nothing, ref Nothing);
技术分享                 //设置表格样式
技术分享                 newTable.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleThickThinLargeGap;
技术分享                 newTable.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
技术分享                 newTable.Columns[1].Width = 100f;
技术分享                 newTable.Columns[2].Width = 220f;
技术分享                 newTable.Columns[3].Width = 105f;
技术分享
技术分享                 //填充表格内容
技术分享                 newTable.Cell(11).Range.Text = "产品详细信息表";
技术分享                 newTable.Cell(11).Range.Bold = 2;//设置单元格中字体为粗体
技术分享                 //合并单元格
技术分享                 newTable.Cell(11).Merge(newTable.Cell(13));
技术分享                 WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中
技术分享                 WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中
技术分享                        
技术分享                 //填充表格内容
技术分享                 newTable.Cell(21).Range.Text = "产品基本信息";
技术分享                 newTable.Cell(21).Range.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorDarkBlue;//设置单元格内字体颜色
技术分享                 //合并单元格
技术分享                 newTable.Cell(21).Merge(newTable.Cell(23));
技术分享                 WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
技术分享
技术分享                  //填充表格内容
技术分享                  newTable.Cell(31).Range.Text = "品牌名称:";
技术分享                  newTable.Cell(32).Range.Text = "BrandName";
技术分享                  //纵向合并单元格
技术分享                  newTable.Cell(33).Select();//选中一行
技术分享                  object moveUnit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
技术分享                  object moveCount = 5;
技术分享                  object moveExtend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;
技术分享                   WordApp.Selection.MoveDown(ref moveUnit, ref moveCount, ref moveExtend);
技术分享                   WordApp.Selection.Cells.Merge();
技术分享                   //插入图片
技术分享                   string FileName = @"c:\picture.jpg";//图片所在路径
技术分享                   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;//图片高度
技术分享                    //将图片设置为四周环绕型
技术分享                    Microsoft.Office.Interop.Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
技术分享                    s.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapSquare;
技术分享                        
技术分享                    newTable.Cell(121).Range.Text = "产品特殊属性";
技术分享                    newTable.Cell(121).Merge(newTable.Cell(123));
技术分享                     //在表格中增加行
技术分享                     WordDoc.Content.Tables[1].Rows.Add(ref Nothing);
技术分享                      
技术分享                     WordDoc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString();//“落款”
技术分享                     WordDoc.Paragraphs.Last.Alignment = Microsoft.Office.Interop.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下";

 }

 

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

标签:

原文地址:http://www.cnblogs.com/nxxshxf/p/5287633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!