0

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

从 MySQL 适配器获取的数据填充一个 DataTable 对象。
列类型与 MySQL 表中的相同。

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

http://pastebin.com/NzVqzWE0

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

将所有值转换为字符串无济于事,因为我需要在表格中进行数字格式化。
从技术上讲,这段代码有效,我正在寻找正确的处理方式。

4

1 回答 1

1

dynamic您可以使用以下关键字将重载解决方案推迟到运行时:

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

请注意,如果没有匹配的重载,这将失败并出现运行时异常。

于 2013-06-03T10:36:47.220 回答