VB.net中如何动态向Object类型的rows集合添加元素?
在VB.NET中动态构建MiniExcel模板所需的rows数据
要动态向value("rows")添加元素,核心思路是先用**可变长度的集合(比如List(Of Object))**存储动态生成的条目,最后把集合转成数组赋值给rows即可,具体实现步骤如下:
1. 初始化基础结构
先创建字典和用于存储动态条目的列表:
Dim value As New Dictionary(Of String, Object)() Dim rowsList As New List(Of Object)()
2. 遍历数据源并添加动态元素
假设你有实际的数据源(比如数据库查询结果、自定义集合),遍历它并逐个创建匹配模板字段的匿名类型对象,加入列表:
'' 替换成你的实际数据源遍历逻辑 For Each dataItem In YourActualDataSource '' 创建对应模板字段的匿名类型对象 Dim templateItem = New With { .name = dataItem.EmployeeName, .department = dataItem.DepartmentName } rowsList.Add(templateItem) Next
3. 将列表转为数组并赋值
把可变长度的列表转成Object()数组,赋值给字典的rows键:
value("rows") = rowsList.ToArray()
4. 执行模板保存
最后调用MiniExcel的保存方法:
MiniExcel.SaveAsByTemplate(path, templatepath, value)
完整可运行示例
'' 初始化字典和动态列表 Dim value As New Dictionary(Of String, Object)() Dim rowsList As New List(Of Object)() '' 模拟实际数据源(替换成你的业务数据) Dim employeeData = New List(Of EmployeeInfo) From { New EmployeeInfo With {.EmpName = "Mike", .DeptName = "Finance"}, New EmployeeInfo With {.EmpName = "Sarah", .DeptName = "IT"}, New EmployeeInfo With {.EmpName = "Tom", .DeptName = "Operations"} } '' 遍历生成模板所需的条目 For Each emp In employeeData rowsList.Add(New With { .name = emp.EmpName, .department = emp.DeptName }) Next '' 赋值并保存到模板 value("rows") = rowsList.ToArray() MiniExcel.SaveAsByTemplate(path, templatepath, value) '' 辅助类(仅示例用,实际根据你的数据源结构调整) Public Class EmployeeInfo Public Property EmpName As String Public Property DeptName As String End Class
内容的提问来源于stack exchange,提问作者Kit C
相关产品推荐
相关产品推荐

