使用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"**错误。
相关截图
- 正常数据列表:

- 报错数据列表:

- 错误信息:

请问我哪里操作有误,能否提供解决方案?
内容的提问来源于stack exchange,提问作者Rubeesh
相关产品推荐
相关产品推荐

