private void button3_Click(object sender, EventArgs e)
        {
            object savePathWord ="row.docx";
            File.Copy("rowtemplate.docx", savePathWord.ToString(),true);

Aspose.Words.Document doc = new Aspose.Words.Document(savePathWord.ToString());
            Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);

NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true);

Aspose.Words.Tables.Table table = allTables[0] as Aspose.Words.Tables.Table;//拿到第一个表格

for (int i = 0; i < 5; i++)
            {
                var roww = table.Rows[2];
                //var row = table.LastRow.Clone(true);
                var row = roww.Clone(true);//复制第三行(绿色行)
                table.Rows.Insert(2 + i, row);//将复制的行插入当前行的上方
            }

//var row3=table.Rows[3];
            //row3.Cells[0].AppendChild(new Paragraph(doc).AppendChild(new Run(doc, "test"))); //报错
            builder.MoveToCell(0,3,0,0); //移动到第一个表格的第四行第一个格子
            builder.Write("test"); //单元格填充文字

//不能用此方法 表格会错乱
            //var row1 = CreateRow(7, new string[] { "1" }, doc);
            //var row2 = CreateRow(12, new string[] { "2" }, doc);
            //table.Rows.Insert(3, row1);
            //table.Rows.Add(row2);

doc.Save(savePathWord.ToString());
            MessageBox.Show("ok");
            System.Diagnostics.Process.Start(savePathWord.ToString());
            
        }

Aspose.Words.Tables.Cell CreateCell(string value,Document doc)
        {
            Aspose.Words.Tables.Cell c1 = new Aspose.Words.Tables.Cell(doc);
            c1.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.None;
            c1.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
            Aspose.Words.Paragraph p = new Paragraph(doc);
            p.AppendChild(new Run(doc,value));
            c1.AppendChild(p);
            return c1;
        }

Aspose.Words.Tables.Row CreateRow(int columnCount,string[] columnValues,Document doc)
        {
            Aspose.Words.Tables.Row r2 = new Aspose.Words.Tables.Row(doc);
            for (int i = 0; i < columnCount; i++)
            {
                if (columnValues.Length >i)
                {
                    var cell = CreateCell(columnValues[i], doc);
                    r2.Cells.Add(cell);
                }
                else
                {
                    var cell = CreateCell("", doc);
                    r2.Cells.Add(cell);
                }
                
            }
            return r2;

}

修改文字颜色:

builder.MoveToCell(0, index + dindex, 2, 0);
Aspose.Words.Font font = builder.Font;
font.Color = System.Drawing.Color.Red;
builder.Write("testtest");
font.Color = System.Drawing.Color.Black;

版权声明:本文为博主原创文章,未经博主允许不得转载。

Aspose.Word 操作word复杂表格 拆分单元格 复制行 插入行 文字颜色的更多相关文章

  1. 如何快速选中某单元格所在的整行或整列 Excel教程

    我们可以使用快捷键的操作来快速选中B3单元格所在的整行或整列,操作方法如下,请大家参阅! 一.正规的快捷键操作 ①快速选中整行 按下键盘上的 Shift Space 即同时按下键盘上的Shift 空格 ...

  2. Aspose.Words操作word生成PDF文档

    Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...

  3. 使用POI创建word表格合并单元格兼容wps

    poi创建word表格合并单元格代码如下: /** * @Description: 跨列合并 */ public void mergeCellsHorizontal(XWPFTable table, ...

  4. 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...

  5. phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    转:http://www.cnblogs.com/huangcong/p/3687665.html 首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包 ...

  6. PHPExcel-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...

  7. jquery操作表格 合并单元格

    jquery操作table,合并单元格,合并相同的行 合并的方法 $("#tableid").mergeCell({ cols:[X,X] ///参数为要合并的列}) /** * ...

  8. PHPExcel合并与拆分单元格

      $objPHPExcel; $filepath="c:\temp.xlsx"; try { $objReader = PHPExcel_IOFactory::createRea ...

  9. POI拆分单元格,并设置拆分后第一个cell的值为空cell的值

    // 从第A7开始,拆分单元格 CellReference ref = new CellReference("A7"); //遍历sheet中的所有的合并区域 for (int i ...

随机推荐

  1. Three levels at which any machine carrying out an Information-Processing task must be understood

    1. Computational theory What is the goal of computation, why is it appropriate, and what is the logi ...

  2. 阿里前DBA的故事

    别人怎么享受生活,与你无关.你怎么磨砺与你有头.引用同事周黄江的一句话,很多人努力程度还远没有到拼天赋的时候. 成功的人都是那种目标很明确的人.对于文中厨师的经历很感兴趣.不管是IT还是餐饮,哪个行业 ...

  3. dsoframer控件学习小结(打开WORD,EXCEL等文件)

    根据自己对dsoframer控件的学习,想把dsoframer控件进行简单的包装为C#的usercontrol,大体需要作如下:(创建windows的usercontrol的步骤就不再说了...)我们 ...

  4. ROS vpn (pptp) 配置及端口绑定配置

    网络搜集 一. 按VPN的协议分类 VPN的隧道协议主要有三种,PPTP,L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议:IPSec是第三层隧道协议,是最 ...

  5. [转载]堆排序(HeapSort) Java实现

    堆排序的思想是利用数据结构--堆.具体的实现细节: 1. 构建一个最大堆.对于给定的包含有n个元素的数组A[n],构建一个最大堆(最大堆的特性是,某个节点的值最多和其父节点的值一样大.这样,堆中的最大 ...

  6. 一次受限于操作系统进程数的OOM

    在64bit机上跑应用,结果进程刚起来就挂,就刚起来就挂..还OOM,还fork不出新进程,尼玛,这什么情况? 1. 如果是应用层面OOM,那么不应该任何命令都不被执行了,不应该OS直接crash掉. ...

  7. Android Studio 简单功能介绍

    Android Studio  建立系统工具包你用来生成,测试,运行您的应用程序和软件包.构建系统是独立于Android的工作室,所以你可以调用它的Android的工作室或从命令行.在你写你的应用程序 ...

  8. Android 使用NDK编译sipdroid Library

    sipdroid是一款开源的运行于Android平台上的voip,目前支持音频和视频通话: 项目拖管地址:http://code.google.com/p/sipdroid/ 下载源代码,导入ecli ...

  9. C++ Copy Elision

    故事得从 copy/move constructor 说起: The default constructor (12.1), copy constructor and copy assignment ...

  10. 读书笔记_Effective_C++_条款四十八:了解模板元编程

    作为模板部分的结束节,本条款谈到了模板元编程,元编程本质上就是将运行期的代价转移到编译期,它利用template编译生成C++源码,举下面阶乘例子: template <int N> st ...