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

使用ClosedXML导出List<dynamic>时出现Parameter count mismatch错误

问题:ClosedXML导出动态查询结果时触发“Parameter count mismatch”错误

我正在尝试用ClosedXML将动态列表项导出到Excel,目标是允许终端用户选择要导出的列。由于列是动态的,我使用了System.Linq.Dynamic.Core命名空间的.ToDynamicListAsync()方法。

问题在于:通过匿名对象方式导出时Excel功能正常,但直接传入运行时确定的动态select查询语句时会抛出错误。

代码示例

using ClosedXML.Excel;
using System.Linq.Dynamic.Core;

var filter = "MeetingNo = 85";
var query = context.PrmProjects.AsNoTracking().Where(filter);

// 匿名对象写法:导出正常
var items = await query.Select(x => new
{
    x.OrganizationId,
    x.ProjectNo,
    x.MeetingNo,
    x.Name
}).ToDynamicListAsync();
using var wb = new XLWorkbook();
var ws = wb.Worksheets.Add();
ws.Cell(3, 1).InsertData(items); /// WORKS FINE

// 动态select语句写法:报错
var selectQuery = $"new(OrganizationId,ProjectNo,MeetingNo,Name)";
var items1 = await query.Select(selectQuery).ToDynamicListAsync();
using var wb2 = new XLWorkbook();
var ws2 = wb2.Worksheets.Add();
ws2.Cell(3, 1).InsertData(items1); /// THROW ERROR 'Parameter count mismatch' 

现象说明

使用items调用InsertData可以正常导出Excel,但使用items1时会抛出**"Parameter count mismatch"**错误。

相关截图

  • 正常数据列表:items正常列表截图
  • 报错数据列表:items1报错列表截图
  • 错误信息:错误截图

请问我哪里操作有误,能否提供解决方案?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:10:32