当前位置: 首页 > news >正文

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
...{
Object Nothing = System.Reflection.Missing.Value;
Directory.CreateDirectory("C:/CNSI"); //
创建文件所在目录
string name = "CNSI_" + DateTime.Now.ToShortString()+".doc";
object filename = "C://CNSI//" + name; //
文件保存路径
//
创建 Word 文档
Word.Application WordApp = new Word.ApplicationClass();
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 = 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.Table newTable = 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.Shape s = 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;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 超轻量级MVC框架的设计和实现 (3)
  • html视频位置左上角,html5视频标签的Css对齐和定位
  • Java中对图片文件的类型的获取
  • html5圆环图比例教程,Chart.js 使用实例 - 圆环比例图表
  • Java重定向System.out和System.err
  • 3d怎么保存html格式,html – Internet Explorer保存3D修复
  • java.util.ConcurrentModificationException异常的解决办法
  • 分析思考html网页结构,网页布局WEB标准的HTML结构化
  • html input type text标签属性和方法事件
  • html的id与name属性,input中id和name属性具体有什么不同啊?(示例)
  • 2021河南固高高考成绩查询,2011河南高考状元:理科状元谢远航 720分 固始慈济高中...
  • 北京.NET俱乐部2007年12月2日活动通知
  • html文件记事本打开乱码,如何解决记事本打开出现乱码
  • 2021年广东高考成绩短信查询方式,2014年广东高考成绩查询 短信查询方式
  • JSSE应用
  • JavaScript-如何实现克隆(clone)函数
  • 4个实用的微服务测试策略
  • HashMap剖析之内部结构
  • HTTP 简介
  • JavaScript中的对象个人分享
  • JS变量作用域
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Kibana配置logstash,报表一体化
  • laravel5.5 视图共享数据
  • ReactNative开发常用的三方模块
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 番外篇1:在Windows环境下安装JDK
  • 关于使用markdown的方法(引自CSDN教程)
  • 力扣(LeetCode)22
  • 利用DataURL技术在网页上显示图片
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 巧用 TypeScript (一)
  • 鱼骨图 - 如何绘制?
  • 自动记录MySQL慢查询快照脚本
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #QT项目实战(天气预报)
  • #控制台大学课堂点名问题_课堂随机点名
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • %check_box% in rails :coditions={:has_many , :through}
  • (CPU/GPU)粒子继承贴图颜色发射
  • (C语言)fgets与fputs函数详解
  • (C语言)二分查找 超详细
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (一)基于IDEA的JAVA基础1
  • (译) 函数式 JS #1:简介
  • (转)Mysql的优化设置
  • ***利用Ms05002溢出找“肉鸡
  • .apk文件,IIS不支持下载解决