C# 获取Excel中的合并单元格

原创 2016年09月01日 17:10:51

C# 获取Excel中的合并单元格

我们在制作表格时,有时经常需要合并及取消合并一些单元格。在取消合并单元格时需要逐个查找及取消,比较麻烦。这里分享一个简单的方法来识别Excel中的合并单元格,识别这些合并单元格之后对这些单元格进行取消合并操作,还可以进行其他操作如设置格式等。

为了展示,这里我使用了一个模板Excel文件,它含有两个合并区域,如下图:


代码使用:

步骤1:实例化一个Workbook对象并加载Excel文档。

Workbook workbook = new Workbook();
workbook.LoadFromFile("测试.xlsx");
步骤2:获取Excel文档的第一个工作表。

Worksheet sheet = workbook.Worksheets[0];
步骤3:获取合并区域并将结果保存到一个CellRange数组。

CellRange[] range = sheet.MergedCells;
步骤4:遍历数组,将合并区域中的单元格取消合并。

foreach (CellRange cell in range)
{
   cell.UnMerge();
}
步骤5:保存文档。

workbook.SaveToFile("输出.xlsx");

效果图:



完整代码:

using Spire.Xls;
 
namespace Detect_Merged_Cells
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = newWorkbook();
            workbook.LoadFromFile("测试.xlsx");
            Worksheet sheet = workbook.Worksheets[0];
            CellRange[] range = sheet.MergedCells;
            foreach(CellRange cell inrange)
            {
               cell.UnMerge();
            }
            workbook.SaveToFile("输出.xlsx");
        }
    }
}

这里我使用了一个免费版Excel组件,可以看出这个方法很简单,只需要几行代码,感兴趣的朋友可以从NuGet下载:https://www.nuget.org/packages/FreeSpire.XLS/

C#读取EXCEL合并单元格

1、无合并单元格的Excel文档读取string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + temp + ";Extend...
  • dotnet_2008
  • dotnet_2008
  • 2009年10月14日 08:07
  • 8006

C# 读取 Excel 中的合并单元格内容。

C# 读取 Excel 中的合并单元格内容。 由于 某些 Excel 的格式过于复杂,用 OLEDB 来读取不大合适。 那么只好使用 Microsoft.Office.Interop.Excel ...
  • wang4978
  • wang4978
  • 2012年07月28日 12:02
  • 5247

C# 获取Excel中的合并单元格

C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格。在取消合并单元格时需要逐个查找及取消,比较麻烦。这里分享一个简单的方法来识别Excel中的合并单元格,识别这...
  • Eiceblue
  • Eiceblue
  • 2016年09月01日 17:10
  • 1837

C#合并excel单元格,操作合并后的单元格 (winform导出excel)

我想合并excel单元格,但不光是行合并,或是列合并,而是其中既包含行合并又包含列合并(就是把列合并的单元格再行合并,反过来也是),比如我想把前三行合并成一个单元格怎么办?(前三行已经是列合并后的单元...
  • xwnxwn
  • xwnxwn
  • 2016年02月04日 10:49
  • 2682

C#中Excel单元格合并

下面的方法主要是对于一个已知的EXCEL进行合并里面的单元格。 string savePath="C:\\Users\\Administrator\\Desktop\\xxx.xls";//exce...
  • jiangzhaobao
  • jiangzhaobao
  • 2012年09月10日 13:53
  • 8664

C#中操作Excel单元格合并

这里主要是对于一个已知的EXCEL进行合并里面的单元格的方法 string savePath="C:\\Users\\Administrator\\Desktop\\xxx.xls";//exc...
  • gongzizoule
  • gongzizoule
  • 2015年06月11日 11:52
  • 2374

C#导出Excel,并且设置Excel单元格格式,合并单元格.

注:要添加COM组件 Microsoft Excel 11.0 Object Library  引用。 具体代码如下: using System; using System.Coll...
  • smeyou
  • smeyou
  • 2014年03月21日 19:43
  • 12707

[C#]合并单元格(行、列)

説明:控件ID指的是页面上面的GridView控件的ID名称或者是DataGrid控件的ID名称;             控件类型写GridView或者DataGrid(根据页面控件属于那种就写那...
  • u012949335
  • u012949335
  • 2016年07月20日 16:15
  • 2884

C#WinForm开发之DataGridView 中合并单元格

DataGridView 没有提供合并单元格的功能,要实现合并单元格的功能就要在CellPainting事件中使用Graphics.DrawLine和 Graphics.DrawString 自己来“...
  • scutLiu
  • scutLiu
  • 2010年06月02日 21:19
  • 22911

winform的DataGridView合并单元格

 private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)    ...
  • Andrewniu
  • Andrewniu
  • 2017年01月17日 16:07
  • 1642
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 获取Excel中的合并单元格
举报原因:
原因补充:

(最多只允许输入30个字)