c# - 每个 DataRow 的奇怪输出。添加到 Excel
问题描述
我有一种从数据表(使用linq)生成excel文件的方法,当我生成文件时,excel会重复每一行,每个单元格......
我的代码添加了预定义的列,然后对于每一行它应该返回整行,而不是每个单元格 + 每个单元格。
var query = db.vistaRobot.ToList().Where(a => a.fechaFiltro2 >= dateInt && a.filtroModifica == null).ToArray();
DataTable tablaDespacho = new DataTable();
tablaDespacho.Columns.Add(new DataColumn()
{
DataType = System.Type.GetType("System.String"),
ColumnName = "Nombre Colaborador"
});
//DataTable tablaDespacho = query.CopyToDataTable<DataRow>();
tablaDespacho.Columns.Add(new DataColumn()
{
DataType = System.Type.GetType("System.String"),
ColumnName = "Tipo de Tiempo"
});
tablaDespacho.Columns.Add(new DataColumn()
{
DataType = System.Type.GetType("System.String"),
ColumnName = "Tipo de Licencia"
});
tablaDespacho.Columns.Add(new DataColumn()
{
DataType = System.Type.GetType("System.String"),
ColumnName = "Fecha Inicio"
});
tablaDespacho.Columns.Add(new DataColumn()
{
DataType = System.Type.GetType("System.String"),
ColumnName = "Fecha de Finalizacion"
});
tablaDespacho.Columns.Add(new DataColumn()
{
DataType = System.Type.GetType("System.String"),
ColumnName = "Fecha de Alumbramiento"
});
tablaDespacho.Columns.Add(new DataColumn()
{
DataType = System.Type.GetType("System.String"),
ColumnName = "Fuero"
});
tablaDespacho.Columns.Add(new DataColumn()
{
DataType = System.Type.GetType("System.String"),
ColumnName = "Nro Folio"
});
tablaDespacho.Columns.Add(new DataColumn()
{
DataType = System.Type.GetType("System.String"),
ColumnName = "Lugar de Reposo"
});
foreach (var element in query)
{
var row =
tablaDespacho.NewRow();
//tablaDespacho.Rows.Add(row);
tablaDespacho.Rows.Add(row.ItemArray);
// A LOT OF ROWS INSIDE
//tablaDespacho.Rows.Add(row);
tablaDespacho.Rows.Add(row.ItemArray);
row["Lugar de Reposo"] = element.Lugar_de_Reposo;
//tablaDespacho.Rows.Add(row);
tablaDespacho.Rows.Add(row.ItemArray);
}
我知道这是每个人的错误,但我找不到后面的登录名。
解决方案
tablaDespacho.Rows.Add(row.ItemArray);
这是因为您在设置行的每一列数据时多次调用。
您应该创建新行,tablaDespacho.NewRow()
然后将属性添加到行,然后最后只tablaDespacho.Rows.Add(row);
为每一行调用一次,如下所示:
foreach (var element in query)
{
var row = tablaDespacho.NewRow();
row["Lugar de Reposo"] = element.Lugar_de_Reposo;
//The other properties
tablaDespacho.Rows.Add(row);
}
推荐阅读
- javascript - 如何修复移动设备上不可点击的 YT 播放按钮?
- haskell - DeriveAnyClass 与空实例
- windows - 是否可以从批处理文件中获取运行批处理文件的任务计划程序任务的名称?
- sql-server - sys.databases 从存储过程查询时返回不同的结果
- python - 在 pythonanywhere 中托管时找不到引导 CSS
- c# - 如何从 azure blob 存储访问图像
- node.js - Node JS如何使用父ID构建嵌套对象
- r - 这两个反应式数据帧是动态的。但是输出正在合并
- html - 使用 table-header-group 重复用于媒体打印的表头
- angular - 不过滤怎么办