关于.net Microsoft.Office.Interop.Word组建操作word的问题,如何控制word表格单元格内部段落的样式。...
控制word表格单元格内部文字样式。我要将数据导出到word当中,对于word表格一个单元格中的一段文字,要设置不同的样式,比如第一行文字作为标题要居中,加粗,第二行为正常的正文。
代码如下
public void AddSimpleTable(_Application WordApp, _Document WordDoc, int numrows, int numcolumns, WdLineStyle outStyle, WdLineStyle intStyle, List<Trip> l_tp){Object Nothing = System.Reflection.Missing.Value;//文档中创建表格Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 1, numcolumns, ref Nothing, ref Nothing);//设置表格样式newTable.Borders.OutsideLineStyle = outStyle;newTable.Borders.InsideLineStyle = intStyle;newTable.Columns[1].Width = 100f;newTable.Columns[2].Width = 315f;string date = string.Empty;int rowcount = 1;List<int> listHeBing = new List<int>();//List<int> listLeft = new List<int>();for (int i = 0; i < l_tp.Count; i++){if (date != l_tp[i].Date){if (rowcount != 1){WordDoc.Content.Tables[1].Rows.Add(ref Nothing);}date = l_tp[i].Date;newTable.Cell(rowcount, 1).Range.Text = l_tp[i].Date;//合并单元格// newTable.Cell(rowcount, 1).Merge(newTable.Cell(rowcount, 2)); listHeBing.Add(rowcount);rowcount = rowcount + 1;}WordDoc.Content.Tables[1].Rows.Add();if (string.IsNullOrEmpty(l_tp[i].Locale)){newTable.Cell(rowcount, 1).Range.Text = l_tp[i].Time;}else{newTable.Cell(rowcount, 1).Range.Text = l_tp[i].Time + @"" + l_tp[i].Locale;}newTable.Cell(rowcount, 1).VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中newTable.Cell(rowcount, 1).Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;//水平居中//newTable.Cell(rowcount, 1).Range.Font.Color = WdColor.wdColorDarkBlue;//设置单元格内字体颜色 SetContent(rowcount, l_tp[i], WordApp, WordDoc, newTable);// newTable.Cell(rowcount, 2).Range.Text = GetContent(rowcount, l_tp[i], WordApp, WordDoc, newTable);newTable.Cell(rowcount, 2).Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;//水平居左rowcount = rowcount + 1;}foreach (var item in listHeBing){newTable.Cell(item, 1).Merge(newTable.Cell(item, 2));newTable.Cell(item, 1).Range.Bold = 2;//设置单元格中字体为粗体newTable.Cell(item, 1).VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中newTable.Cell(item, 1).Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;//水平居中//newTable.Cell(item, 1).Range.Shading.ForegroundPatternColor = WdColor.wdColorGray40;//背景颜色 }}
private void SetContent(int i, Trip tp, _Application WordApp, _Document WordDoc, Microsoft.Office.Interop.Word.Table Table){string rs = string.Empty;WordDoc.ActiveWindow.ActivePane.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;//激活页面内容的编辑 Table.Cell(i, 2).Select();WordApp.Selection.Font.Name = "宋体";WordApp.Selection.Font.Size = 10.5f;WordApp.Selection.Font.Bold = 1;WordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;WordApp.Selection.TypeText(tp.TOPIC);WordApp.Selection.TypeParagraph();//另起一段 WordApp.Selection.Font.Bold = 0;WordApp.Selection.TypeText(tp.Content);if (tp.L_Compere.Count > 0){WordApp.Selection.TypeParagraph();//另起一段 WordApp.Selection.Font.Bold = 1;WordApp.Selection.TypeText("主持:");WordApp.Selection.TypeParagraph();//另起一段 foreach (var item in tp.L_Compere){WordApp.Selection.Font.Bold = 0;WordApp.Selection.TypeText(item.Name + @" " + item.JobTitle);WordApp.Selection.TypeParagraph();//另起一段 }}if (tp.L_Speech.Count > 0){WordApp.Selection.TypeParagraph();//另起一段 WordApp.Selection.Font.Bold = 1;WordApp.Selection.TypeText("演讲嘉宾:");WordApp.Selection.TypeParagraph();//另起一段 foreach (var item in tp.L_Speech){WordApp.Selection.Font.Bold = 0;WordApp.Selection.TypeText(item.Name + @" " + item.JobTitle);WordApp.Selection.TypeParagraph();//另起一段 }}}
转载于:https://www.cnblogs.com/laoyuanroom/p/4071427.html
关于.net Microsoft.Office.Interop.Word组建操作word的问题,如何控制word表格单元格内部段落的样式。...相关推荐
- C# 用Microsoft.Office.Interop.PowerPoint类库操作PPT
前言:最近由于项目需求,需要使用此类库对PPT进行操作 1.引用 Microsoft.Office.Interop.PowerPoint和 Microsoft.Office.Core 2.PPT操作 ...
- C#日常开发随手记------COM组件(Microsoft.Office.Interop.Excel)操作excel、如何创建\删除文件夹
文章中写了点过程有点啰嗦,想直接看代码的直接下拉看加粗标题处 第一次使用COM组件操作excel,遇到了点坑,也有些感触. 一般来说操作excel,我比较常用的是OleDB,但是OleDB需要安装Ac ...
- VB.NET 使用Microsoft.Office.Interop进行EXCEL操作时彻底关闭EXCEL进程
Imports System.Runtime.InteropServices Imports Microsoft.Office.Interop Public Class 关闭EXCEL'' TODO: ...
- 【C#】C#使用Microsoft.Office.Interop.Word操作Word文档,向表格插入图片
上篇:[C#]C#使用Microsoft.Office.Interop.Word操作Word文档,替换文本 Word模板: 代码: try {Application app = new Applica ...
- 【C#】C#使用Microsoft.Office.Interop.Word操作Word文档,替换文本
最近要做一个批量打印文档功能,于是找了Microsoft.Office.Interop.Word这个插件. 基本步骤是这样的,创建Word模板文档,C#调用模板文档替换对应的文本,保存新文档. 下面仅 ...
- C# 使用Microsoft.Office.Interop将Excel、Word转换成PDF遇到的问题总结
首先应用中引入Microsoft.Office.Interop.Excel.Microsoft.Office.Interop.Word两个dll,将嵌入式互操作类型设为False, WORD转换成PD ...
- 通过C#Microsoft.Office.Interop.Word理解互操作性
目录 一.概念 二.应用 三.Word操作示例 四.总结 五.拓展 一.概念 C# 中的互操作性指的是C#托管代码和非托管代码之间实现互操作性的方法.(参考微软文档:互操作性概述) 参考:百度百科-- ...
- 无法将为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型
文章目录 1.错误原因 2. 解决方式 2.1 office多版本 2.1.1 删除多余版本 2.1.2 修复当前版本 2.1.3 其他操作(可选1) 2.1.4 其他操作(可选2) 2.2 wps卸 ...
- C# Microsoft.Office.Interop.Word设置Word页脚之添加当前页数
用C#操作Word,电脑上原生的库为Microsoft.Office.Interop.Word,虽然有些慢,但也能用.操作word的另外一个库是Spire.Doc,但是商业的,破解版也不好搞,还是凑合 ...
最新文章
- doc python 颜色_Python wordcloud.ImageColorGenerator方法代码示例
- LOJ#510. 「LibreOJ NOI Round #1」北校门外的回忆(线段树)
- 深度学习中图片数据增强方法
- Axis2 POJO实现WebService(一)发布
- AS3中,setTimeOut、setInterval、Timer区别
- 学院派CAD工具箱及CAD调用外部应用程序的方法
- springboot的redis工具类编写(采用RedisTemplate)(简单的取值,取多个值)。
- 那些曾经拥有的最大快乐,都是好奇心的结果
- Windows 8桌面的尴尬
- 边缘计算比云计算强在哪里?终于有人讲明白了
- Spring MVC Controller 的同一个 URL 请求,根据逻辑判断返回 JSON 或者 HTML 视图
- java restcontroller_Spring框架:@RestController与@Controller
- 掌握rm命令删除文件
- 虚拟 ​router 原理分析- 每天5分钟玩转 OpenStack(101)
- 使用web gis 加载显示arcgis for server 发布出来的地图,并提供查询标记显示属性功能...
- mask rcnn数据转换为tfrecord数据
- 卷积神经网络 第三周作业 Keras+-+Tutorial+-+Happy+House+v1
- Node.app让Nodejs平台在iOS和OS X系统上奔跑
- 春分时节,迎一场春暖花开
- C语言学生成绩管理系统——检查学号姓名,双向循环链表