使用泛型批量写入Excel的方法

需积分: 14 0 下载量 174 浏览量 更新于2024-09-05 收藏 2KB TXT 举报
"该代码示例提供了一种通用的方法来将数据写入Excel表格,尤其适用于需要批量导入或导出数据的情况。它利用了.NET框架中的NPOI库(一个与Apache POI类似的库,用于处理Microsoft Office文件格式),通过泛型类型参数实现了对不同对象集合的写入支持。" 在给定的代码中,`Write_Excel2<T>` 是一个公共方法,接受三个参数:`List<T> durationTimeInfoList`(要写入的对象集合),`string[] arr`(用于设置Excel表头的字符串数组),以及`string filename`(生成的Excel文件名)。这个方法的主要目标是将对象集合中的数据转换并写入Excel工作表。 首先,创建了一个 `HSSFWorkbook` 实例,这是NPOI库中表示Excel HSSFWorkbook(.xls格式)的工作簿对象。接着,创建了一个名为 "onesheet" 的工作表,并在第一行(索引为0)设置了表头。表头的值来自于输入的 `arr` 数组。 然后,方法通过反射机制获取泛型类型 `T` 的属性信息。对于 `durationTimeInfoList` 中的每个对象,创建一个新的行(使用 `CreateRow` 方法),并遍历对象的所有属性。通过 `PropertyInfo.GetValue` 获取每个属性的值,并将其转换为字符串,然后写入到对应的单元格中。 最后,生成一个订单编号(`GenerateOrderNumber()` 方法未在此处给出实现),组合成完整的Excel文件路径,并使用 `FileStream` 打开这个路径以便写入工作簿。通过调用 `workbook.Write(url)` 将工作簿写入到文件流中,完成Excel文件的生成。 这个方法的优点在于其灵活性和可扩展性,可以适用于任何具有适当公共属性的对象集合,只需要传入相应的对象列表和表头信息即可。这种方法在数据处理、报告生成或数据导出场景下非常有用。