重要代码:

  row = new DOS.Row()
{
RowIndex = new DOX.UInt32Value(rowIndex),
Spans = new DOX.ListValue<DOX.StringValue>(new DOX.ListValue<DOX.StringValue>()
{
InnerText = "1:2"
}),
DyDescent = new DOX.DoubleValue(0.2),
OutlineLevel = new DOX.ByteValue().Value = };

注意:如果多个行组合时,各组合之间的行不能连续,否则认为是一个行组合。如组合一的行为123,组合二的行为456,则认为是一个行组合,行为123456

完整代码:

         /// <summary>
/// 行组
/// </summary>
/// <param name="fileName"></param>
/// <param name="sheetName"></param>
public static void CreateRowGroup(string fileName,string sheetName)
{
using(pkg.SpreadsheetDocument document=pkg.SpreadsheetDocument.Create(fileName, DOX.SpreadsheetDocumentType.Workbook))
{
pkg.WorkbookPart workbookPart = document.AddWorkbookPart();
DOS.Workbook workbook = workbookPart.Workbook = new DOS.Workbook(); pkg.SharedStringTablePart sharedStringTablePart = workbookPart.AddNewPart<pkg.SharedStringTablePart>(); pkg.WorksheetPart worksheetPart = workbookPart.AddNewPart<pkg.WorksheetPart>();
DOS.SheetData sheetData = new DOS.SheetData(); DOS.Worksheet worksheet = worksheetPart.Worksheet = new DOS.Worksheet(sheetData); DOS.Sheets sheets = document.WorkbookPart.Workbook.AppendChild<DOS.Sheets>(new DOS.Sheets()); DOS.Sheet sheet = new DOS.Sheet()
{
Id = workbookPart.GetIdOfPart(worksheetPart),
SheetId = ,
Name = sheetName
};
sheets.Append(sheet); DOS.Row row;
for(uint rowIndex=;rowIndex<;rowIndex++)
{
if(rowIndex % == )
{
row = new DOS.Row()
{
RowIndex = new DOX.UInt32Value(rowIndex)
};
}
else
{
row = new DOS.Row()
{
RowIndex = new DOX.UInt32Value(rowIndex),
Spans = new DOX.ListValue<DOX.StringValue>(new DOX.ListValue<DOX.StringValue>()
{
InnerText = "1:2"
}),
DyDescent = new DOX.DoubleValue(0.2),
OutlineLevel = new DOX.ByteValue().Value = };
} sheetData.Append(row); Random random = new Random((int)DateTime.Now.Ticks* (int)rowIndex);
string text = random.Next(,).ToString(); int textIndex = InsertSharedStringItem(text, sharedStringTablePart); DOS.Cell cell = new DOS.Cell()
{
CellReference = "A" + rowIndex.ToString(),
CellValue = new DOS.CellValue(textIndex.ToString())
};
cell.DataType = new DOX.EnumValue<DOS.CellValues>(DOS.CellValues.SharedString); row.AppendChild(cell); random = new Random((int)DateTime.Now.Ticks * (int)rowIndex);
text = random.Next(, ).ToString(); textIndex = InsertSharedStringItem(text, sharedStringTablePart); cell = new DOS.Cell()
{
CellReference = "B" + rowIndex.ToString(),
CellValue = new DOS.CellValue(textIndex.ToString())
};
cell.DataType = new DOX.EnumValue<DOS.CellValues>(DOS.CellValues.SharedString); row.AppendChild(cell);
} worksheet.Save();
//workbook.Save();
//document.Save(); }
}

运行后的结果图:

openXML设置Excel行组合的更多相关文章

  1. C#设置Excel行高、列宽

    设置固定值 worksheet.Columns[1].ColumnWidth = 15; 设置自动换行 worksheet.Columns.WrapText = true; 设置自动行高.列宽 xlA ...

  2. openXML写Excel列组合

    重要代码: DOS.SheetData sheetData = new DOS.SheetData(); DOS.Columns columns = new DOS.Columns(); DOS.Co ...

  3. C#_Excel数据读取与写入_自定义解析封装类_支持设置标题行位置&使用excel表达式收集数据&单元格映射&标题映射&模板文件的参数数据替换

    本篇博客园是被任务所逼,而已有的使用nopi技术的文档技术经验又不支持我需要的应对各种复杂需求的苛刻要求,只能自己造轮子封装了,由于需要应对很多总类型的数据采集需求,因此有了本篇博客的代码封装,下面一 ...

  4. C# 设置Excel数据自适应行高、列宽的2种情况

    Excel表格中,由于各种数据的复杂性,可能存在单元格中的数据字号大小.数据内容长度不一而出现,列宽过宽.过窄或者行高过大.过小的问题.常见的解决方法是调整行高.列宽.在Microsoft Excel ...

  5. 原创:如何实现在Excel通过循环语句设置指定行的格式

    原创:如何实现在Excel通过循环语句设置指定行的格式 一.需求: 想让excel的某些行(比如3的倍数的行)字体变成5号字 如何整: 二.实现: Sub code() To Range(" ...

  6. Java 设置Excel自适应行高、列宽

    在excel中,可通过设置自适应行高或列宽自动排版,是一种比较常用的快速调整表格整体布局的方法.设置自适应时,可考虑2种情况: 1.固定数据,设置行高.列宽自适应数据(常见的设置自适应方法) 2.固定 ...

  7. C#/VB.NET 如何在Excel中使用条件格式设置交替行颜色

    说起高亮数据行,不让人想起了交替颜色行,有的人把交替颜色行也都设置成高亮,不仅不美观,而且对阅读还是个干扰.隔行交替的颜色是为了阅读不串行,这些行只是环境,数据才是主体.那么如何通过C#/VB.NET ...

  8. C# 设置Excel打印选项及打印excel文档

    C# 设置Excel打印选项及打印excel文档 打印Excel文档是一个很常见的操作,但有时候我们会碰到各种不同的打印需求,例如只打印一个Excel工作表的其中一部分,或打印时每页都有表头,或把工作 ...

  9. POI中设置Excel单元格格式

    引用:http://apps.hi.baidu.com/share/detail/17249059 POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWork ...

随机推荐

  1. jackson 字符串转对象

    ObjectMapper mapper = new ObjectMapper(); Map<String, Object> map = mapper.readValue(str, Map. ...

  2. 盒子模型(Box Model)

    盒子模型(Box Model) ■ 盒子模型——概念 在网页设计中常用的属性名:内容(content),填充(padding),边框(border),边界(margin),CSS 盒子模式都具备这些属 ...

  3. HBase 数据迁移方案介绍

    一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类.下 ...

  4. 转*SqlSever查询某个表的列名称、说明、备注、注释,类型等

    @原文地址 关键部分如下: ------sqlserver 查询某个表的列名称.说明.备注.类型等 SELECT 表名 then d.name else '' end, 表说明 then isnull ...

  5. 复制粘贴插件(不包含 Flash)——clipboard.js

    clipboard.js是现代化的“复制到剪切板”插件.不包含 Flash.gzip 压缩后仅 3kb.不依赖 Flash 或其他臃肿的框架.API:https://clipboardjs.com c ...

  6. JS整理--闭包

    1.闭包可以访问当前函数以外的变量 function a(){ var date="1"; function b(str){ console.log(str+date) } ret ...

  7. linux ssh反向代理

    参考:https://segmentfault.com/a/1190000002718360 内外运行:sshpass -p 123456 ssh -fNR 5000:localhost:22 ser ...

  8. svn如何根据提交日志信息回退版本

    问题场景: 1 记得提交的日志信息中包含openssl,但是不记得这次提交的版本号revesion,是svn初始化后中间的某次提交: 2 svn环境的操作系统平台为Fedora, 即命令行下:而且sv ...

  9. EasyPR源码剖析(7):车牌判断之SVM

    前面的文章中我们主要介绍了车牌定位的相关技术,但是定位出来的相关区域可能并非是真实的车牌区域,EasyPR通过SVM支持向量机,一种机器学习算法来判定截取的图块是否是真的“车牌”,本节主要对相关的技术 ...

  10. android studio 模拟器不能使用的解决方案

    1.安装模拟器的时候 AS提示是 VT -x is disable 进入电脑的 bios 系统设置,怎么进入--> 在开机的时候点击F2(华硕电脑,不同电脑方式不同) --在“configura ...