Skip to content

MergeSameCells 方法合并单元格时,某个单元格的内容的一部分与合并标记相同,触发异常System.ArgumentNullException: Value cannot be null. (Parameter 'source') #833

@heqian25433

Description

@heqian25433

Excel Type

  • XLSX
    Excel的公司邮箱列与联系人邮箱列,内容是[email protected],判断合并标记的时候不是全字匹配的
    代码如下:
var str = "[{\"QQ/微信\":\"@merge\\r\\n\",\"公司名称\":\"@merge\\r\\n\",\"网站\":\"@merge\\r\\n\",\"来源\":\"@merge\\r\\n\",\"名称\":\"\",\"No.\":\"@mergelimit\\r\\n\",\"更新时间\":\"\",\"国家\":\"@merge\\r\\n\",\"公司电话\":\"@merge\\r\\n\",\"标签\":\"@merge\\r\\n\",\"联系人电话\":\"\",\"公司邮箱\":\"\",\"联系人邮箱\":\"\",\"最后发件日期\":\"\"},{\"QQ/微信\":\"null\",\"公司名称\":\"AAAAA\",\"网站\":\"null\",\"来源\":\"2023\",\"名称\":\"BBBBB\",\"No.\":\"369\",\"更新时间\":\"2025-06-30 16:21:14\",\"国家\":\"中国\",\"公司电话\":\"11111\",\"标签\":\"挂\",\"联系人电话\":\"33333\",\"公司邮箱\":\"[email protected]\",\"联系人邮箱\":\"[email protected]\",\"最后发件日期\":\"2025-07-04 15:10:25\"},{\"QQ/微信\":\"null\",\"公司名称\":\"AAAAA\",\"网站\":\"null\",\"来源\":\"2023\",\"名称\":\"\",\"No.\":\"369\",\"更新时间\":\"2025-06-30 16:21:14\",\"国家\":\"中国\",\"公司电话\":\"11111\",\"标签\":\"挂\",\"联系人电话\":\"33333\",\"公司邮箱\":\"\",\"联系人邮箱\":\"\",\"最后发件日期\":\"\"},{\"QQ/微信\":\"@endmerge\\r\\n\",\"公司名称\":\"@endmerge\\r\\n\",\"网站\":\"@endmerge\\r\\n\",\"来源\":\"@endmerge\\r\\n\",\"名称\":\"\",\"No.\":\"@endmerge\\r\\n\",\"更新时间\":\"\",\"国家\":\"@endmerge\\r\\n\",\"公司电话\":\"@endmerge\\r\\n\",\"标签\":\"@endmerge\\r\\n\",\"联系人电话\":\"\",\"公司邮箱\":\"\",\"联系人邮箱\":\"\",\"最后发件日期\":\"\"}]";
bool hasMultipleLines = true;
var result = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(str);
result.Dump();
byte[] fileContent = null;
using var stream = new System.IO.MemoryStream();
var config = new MiniExcelLibs.OpenXml.OpenXmlConfiguration()
{
	TableStyles = MiniExcelLibs.OpenXml.TableStyles.None,
	AutoFilter = false,
	EnableWriteNullValueCell = false
};
stream.SaveAs(result, true, "Sheet1", ExcelType.XLSX, config);
fileContent = stream.ToArray();
if (hasMultipleLines)
{//合并单元格
	using var streamTwo = new System.IO.MemoryStream();
	streamTwo.MergeSameCells(fileContent);
	fileContent = streamTwo.ToArray();
}

MiniExcel Version

1.41.3

Description

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions