关于.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, , 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表格单元格内部段落的样式。的更多相关文章
- C# 使用自带Microsoft.Office.Interop.Excel简单操作Excel文件
项目添加应用 Microsoft.Office.Interop.Excel.dll 文件 引用命名空间: using Excel = Microsoft.Office.Interop.Excel; 简 ...
- Microsoft.Office.Interop.Excel Find 操作
public void SearchLoactions(string filepath, int start, int end ,string expectvalue) { if (end >= ...
- (转)无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-
HRESULT:0x80030002 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft ...
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。
无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor ...
- System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。
报错:System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接 ...
- 调用Microsoft.Office.Interop.Word生成自定义Word文档
具体思路: 1.先制作Word模版,使用文本框+书签的方式来设计模版: 2.模版制作完之后,根据模版生成新文件,使用File.Copy方法,生成.doc格式新文件: 3.后台取得数据,参照网页渲染的方 ...
- C#用Microsoft.Office.Interop.Word进行Word转PDF的问题
之前用Aspose.Word进行Word转PDF发现'\'这个字符会被转换成'¥'这样的错误,没办法只能换个方法了.下面是Microsoft.Office.Interop.Word转PDF的方法: p ...
- Microsoft.Office.Interop.Word 创建word
Microsoft.Office.Interop.Word 创建word 转载:http://www.cnblogs.com/chenbg2001/archive/2010/03/14/1685746 ...
- VS编程中找不到Microsoft.Office.Core、Microsoft.Office.Interop.Word和VBIDE
在使用vs2005. vs2008. vs2010 制作包含 word等office的应用程序时,有时找不到对Microsoft.Office.Core. Microsoft.Office.Inter ...
随机推荐
- Yii2.0中form->field如何获取主表的一个字段并且设置为只读
<?= $form->field($model, 'last_login_time')->textInput(['readonly' => 'true']) ?>
- yii2史上最简单式安装教程,没有之一
写一篇绝对堪称史上最easy的Yii2安装教程教你入门. 既然是安装Yii,我们先去官网下载一份Yii的高级模版,什么,你说打开页面乱七八糟的英文字母你看不懂?那这样大哥,你按照下面的截图进行操作好吧 ...
- Fatal error 829---数据库 ID 8,页 (1:80740) 已标记为 RestorePending,可能表明磁盘已损坏(日志备份和热备、双机的重要性)
问题现象: 在业务数据库中查询:SELECT a.NAME FROM SYSOBJECTS a WHERE a.NAME LIKE '%2015' AND a.XTYPE='u' 提示:消息 21,级 ...
- OC宏和常量
1.通常常量的定义const放在最前面: 2.宏的定义 #define TAG_ID 101,注意:宏名称和值之间没有等号,宏定义的末尾也不需要分号
- [Linux] - 阿里云CentOS 6.5 安装Docker
因为阿里云的CentOS 6.5版本默认内核kernel版本是2.6的,比较低.安装docker的后,运行不了. 步骤: 1.使用命令更新: yum update 2.安装Docker.这里忽略500 ...
- 提供VR定制开发、AR定制开发(VR游戏定制、应用定制)
设置输出路径 添加烘培输出的贴图类型 添加“LightingMap”类型 设置烘培贴图大小和目标贴图位置为“自发光” 设置烘培材质,选择“输出到源” 点击“渲染”即可 24.标准材质贴图的烘培光影处理 ...
- 代码安装apk文件
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(file); in ...
- jQuery源码:从原理到实战
jQuery源码:从原理到实战 jQuery选择器对象 $(".my-class"); document.querySelectorAll*".my-class" ...
- android 学习第一天 了解事件机制,页面跳转等常用操作
点击时间2种 第一种,通过初始化页面 写入点击事件 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI ...
- java 验证手机号码、电话号码(包括最新的电信、联通和移动号码)
一.目前的号码段(2016-12-8更新) 二.代码 package com.test; import java.util.regex.Pattern; public class CheckPho ...