You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:无法通过LINQ与UiPath实现单元格合并,求解决方案

基于UiPath和LINQ的Excel单元格合并解决方案

一、UiPath直接操作Excel合并单元格(使用Interop)

  • 前置条件:确保项目已添加Microsoft.Office.Interop.Excel依赖包
  • 操作步骤:
    1. 用Excel Application Scope活动打开目标工作簿,定义Workbook变量(如wb)和Worksheet变量(如ws)
    2. 添加Invoke Code活动,语言选择C#,输入以下代码(以合并A列连续相同内容单元格为例):
// 跳过表头,从第2行开始处理
int startRow = 2;
int lastRow = ws.Cells[ws.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row;

int currentRow = startRow;
while (currentRow <= lastRow)
{
    string currentVal = ws.Cells[currentRow, "A"].Value?.ToString();
    int mergeNum = 1;

    // 统计连续相同值的行数
    while (currentRow + mergeNum <= lastRow && 
           ws.Cells[currentRow + mergeNum, "A"].Value?.ToString() == currentVal)
    {
        mergeNum++;
    }

    // 执行合并并设置垂直居中(可选)
    if (mergeNum > 1)
    {
        var mergeRange = ws.Range[ws.Cells[currentRow, "A"], ws.Cells[currentRow + mergeNum - 1, "A"]];
        mergeRange.Merge();
        mergeRange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
    }

    currentRow += mergeNum;
}
  1. 若需合并多列(如A、B列需同时匹配相同内容才合并),只需修改判断逻辑,同时校验多列的值是否一致即可。

二、LINQ预处理数据后生成合并效果Excel

如果不想直接操作Excel单元格,可先用LINQ分组数据,再通过UiPath活动生成带合并格式的表格:

  1. 假设原始数据存储在DataTable变量dtOriginal中,按目标列(如"分类"列)分组:
var groupedData = dtOriginal.AsEnumerable()
    .GroupBy(row => row["分类"].ToString())
    .Select(g => new 
    {
        分类 = g.Key,
        子项 = g.Select(row => row["子项"].ToString()).ToList()
    })
    .ToList();
  1. 将分组数据转换为新DataTable,相同分类仅第一行填充值,其余行对应列留空:
DataTable dtMerged = new DataTable();
dtMerged.Columns.Add("分类");
dtMerged.Columns.Add("子项");

foreach (var group in groupedData)
{
    // 第一行写入分类值
    dtMerged.Rows.Add(group.分类, group.子项[0]);
    // 后续行分类列留空
    for (int i = 1; i < group.子项.Count; i++)
    {
        dtMerged.Rows.Add("", group.子项[i]);
    }
}
  1. 用Write Range活动将dtMerged写入Excel,再通过上述Interop代码合并"分类"列中连续为空的上方单元格,即可实现目标效果。

内容的提问来源于stack exchange,提问作者Krishna Rai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:20:19