控制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, , numcolumns, ref Nothing, ref Nothing);
//设置表格样式
newTable.Borders.OutsideLineStyle = outStyle;
newTable.Borders.InsideLineStyle = intStyle;
newTable.Columns[].Width = 100f;
newTable.Columns[].Width = 315f;
string date = string.Empty;
int rowcount = ;
List<int> listHeBing = new List<int>();
//List<int> listLeft = new List<int>();
for (int i = ; i < l_tp.Count; i++)
{
if (date != l_tp[i].Date)
{
if (rowcount != )
{
WordDoc.Content.Tables[].Rows.Add(ref Nothing);
}
date = l_tp[i].Date;
newTable.Cell(rowcount, ).Range.Text = l_tp[i].Date; //合并单元格
// newTable.Cell(rowcount, 1).Merge(newTable.Cell(rowcount, 2));
listHeBing.Add(rowcount); rowcount = rowcount + ; }
WordDoc.Content.Tables[].Rows.Add();
if (string.IsNullOrEmpty(l_tp[i].Locale))
{
newTable.Cell(rowcount, ).Range.Text = l_tp[i].Time;
}
else
{ newTable.Cell(rowcount, ).Range.Text = l_tp[i].Time + @"
" + l_tp[i].Locale;
}
newTable.Cell(rowcount, ).VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中
newTable.Cell(rowcount, ).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, ).Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;//水平居左
rowcount = rowcount + ;
}
foreach (var item in listHeBing)
{
newTable.Cell(item, ).Merge(newTable.Cell(item, ));
newTable.Cell(item, ).Range.Bold = ;//设置单元格中字体为粗体
newTable.Cell(item, ).VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中
newTable.Cell(item, ).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, ).Select();
WordApp.Selection.Font.Name = "宋体";
WordApp.Selection.Font.Size = 10.5f;
WordApp.Selection.Font.Bold = ;
WordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
WordApp.Selection.TypeText(tp.TOPIC);
WordApp.Selection.TypeParagraph();//另起一段
WordApp.Selection.Font.Bold = ;
WordApp.Selection.TypeText(tp.Content);
if (tp.L_Compere.Count > )
{
WordApp.Selection.TypeParagraph();//另起一段
WordApp.Selection.Font.Bold = ;
WordApp.Selection.TypeText("主持:");
WordApp.Selection.TypeParagraph();//另起一段
foreach (var item in tp.L_Compere)
{
WordApp.Selection.Font.Bold = ;
WordApp.Selection.TypeText(item.Name + @" " + item.JobTitle);
WordApp.Selection.TypeParagraph();//另起一段
}
}
if (tp.L_Speech.Count > )
{
WordApp.Selection.TypeParagraph();//另起一段
WordApp.Selection.Font.Bold = ;
WordApp.Selection.TypeText("演讲嘉宾:");
WordApp.Selection.TypeParagraph();//另起一段
foreach (var item in tp.L_Speech)
{
WordApp.Selection.Font.Bold = ;
WordApp.Selection.TypeText(item.Name + @" " + item.JobTitle);
WordApp.Selection.TypeParagraph();//另起一段
}
}
}

关于.net Microsoft.Office.Interop.Word组建操作word的问题,如何控制word表格单元格内部段落的样式。的更多相关文章

  1. C# 使用自带Microsoft.Office.Interop.Excel简单操作Excel文件

    项目添加应用 Microsoft.Office.Interop.Excel.dll 文件 引用命名空间: using Excel = Microsoft.Office.Interop.Excel; 简 ...

  2. Microsoft.Office.Interop.Excel Find 操作

    public void SearchLoactions(string filepath, int start, int end ,string expectvalue) { if (end >= ...

  3. (转)无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-

    HRESULT:0x80030002 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft ...

  4. 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。

    无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor ...

  5. System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。

    报错:System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接 ...

  6. 调用Microsoft.Office.Interop.Word生成自定义Word文档

    具体思路: 1.先制作Word模版,使用文本框+书签的方式来设计模版: 2.模版制作完之后,根据模版生成新文件,使用File.Copy方法,生成.doc格式新文件: 3.后台取得数据,参照网页渲染的方 ...

  7. C#用Microsoft.Office.Interop.Word进行Word转PDF的问题

    之前用Aspose.Word进行Word转PDF发现'\'这个字符会被转换成'¥'这样的错误,没办法只能换个方法了.下面是Microsoft.Office.Interop.Word转PDF的方法: p ...

  8. Microsoft.Office.Interop.Word 创建word

    Microsoft.Office.Interop.Word 创建word 转载:http://www.cnblogs.com/chenbg2001/archive/2010/03/14/1685746 ...

  9. VS编程中找不到Microsoft.Office.Core、Microsoft.Office.Interop.Word和VBIDE

    在使用vs2005. vs2008. vs2010 制作包含 word等office的应用程序时,有时找不到对Microsoft.Office.Core. Microsoft.Office.Inter ...

随机推荐

  1. mysql操作记录

    use mysql;select host,user,password from user; grant all privileges on *.* to root@'%' identified by ...

  2. NVMe over Fabrics又让RDMA技术火了一把

    RDMA是个什么鬼?相信大部分不关心高性能网络的童鞋都不太了解.但是NVMe over Fabrics的出现让搞存储的不得不抽出时间来看看这个东西,这篇文章就来介绍下我所了解的RDMA. RDMA(R ...

  3. Deployment failure on Tomcat 6.x. Could not copy all resources to……

    http://blog.knowsky.com/194238.htm tomcat部署不成功 Deployment failure on Tomcat 6.x. Could not copy all ...

  4. 条款19:设计class犹如设计type

    1,新的type对象应该如何被创建和销毁? 这会影响class的构造函数ctor和析构函数dtor,以及内存分配函数和释放函数   //operator new //operator new[] // ...

  5. PowerProfile.java与power_profile.xml

    转载自http://blog.csdn.net/green1900/article/details/42427871 现在诸多关于电池管理的应用做的极其绚烂,可实现如耗电应用排行.剩余时间计算.关闭耗 ...

  6. Android 卡片计数器

    该文用英文写的,可以到我的英文博客中阅读.

  7. ORM框架详解

    .Net开源微型ORM框架测评 什么是ORM? 对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象 ...

  8. 添加Web引用

  9. SharePrecences--(json+sharePrecences)存list 或对象

    利用Gson和SharePreference存储结构化数据 具体的步骤 这个假设有三个User对象生成一个ArrayList<User>: User user1 = new User(&q ...

  10. JS中两个感叹号!!的意义

    var foo = true; console.log(!foo); // false console.log(!!foo); // true 两个 !! 就是 非非 如果值为boolean值 两个感 ...