在DataTable循环中将未知类型的单元格值传递给重载方法

本文关键字:值传 单元格 方法 重载 类型 循环 DataTable 未知 | 更新日期: 2023-09-27 18:16:28

第一次使用严格类型语言,遇到一些问题。

从MySQL适配器获取的数据填充一个DataTable对象。
列类型与MySQL表保持一致。

启动NPOI,创建xls表。下一步是在循环中写入数据。问题就在这里

http://pastebin.com/NzVqzWE0

SetCellValue方法重载所有需要的类型,但它可以猜测更合适的重载自动?我错过什么了吗?

将所有值转换为字符串不能帮助,因为我需要在工作表中格式化数字。
从技术上讲,这段代码工作,我正在寻找正确的方法来处理这个

在DataTable循环中将未知类型的单元格值传递给重载方法

您可以使用dynamic关键字将重载解析延迟到运行时:

foreach (DataColumn column in data.Columns)
{
    ICell cell = dataRow.CreateCell(column.Ordinal);
    cell.SetCellValue((dynamic)row[column]);
}

请注意,如果没有匹配的重载,将导致运行时异常而失败。