1

我的数据保存在 IEnumerable 对象中,我希望将其填充到 Excel 中的表中。

基本上我能够将数据导出到 Excel 工作表,但我不知道以更优雅的方式导出表格。

这就是我所拥有的:

 //Populate column names
 String[] columnNames = {"val1", "val2", "val3", "val4", "val5"};
 for (int p = 1, l = 1; l <= 5;l++)
 {
           xlWorkSheet.Cells[p, l] = columnNames[l-1]; 
 }

 //Entries is an IEnumerable object
 int i = 1;
 foreach (var e in Entries)
 {
            int j = 1;
            xlWorkSheet.Cells[i, j] = e.val1; j++;
            xlWorkSheet.Cells[i, j] = e.val2; j++;
            xlWorkSheet.Cells[i, j] = e.val3; j++;
            xlWorkSheet.Cells[i, j] = e.val4; j++;
            xlWorkSheet.Cells[i, j] = e.val5; j++; 
            i++; 
  }

我正在考虑将数据从 IEnumerable 转换为数据表,例如将 IEnumerable 转换为 DataTable,但我认为它会引入额外的一层不必要的复杂性。

你怎么认为?

谢谢

4

1 回答 1

2

我强烈推荐EPPlus来格式化 Excel 输出。我最近不得不这样做并查看了许多不同的方法,但这是最好的!

尽管就输出而言,这实际上取决于您要实现的目标。

从他们的文档中,EPPlus 支持....

  • EPPlus 支持:
  • 单元格范围
  • 单元格样式(边框、颜色、填充、字体、数字、对齐方式)
  • 图表
  • 图片
  • 形状
  • 评论
  • 保护
  • 加密
  • 数据透视表
  • 数据验证
  • 条件格式
  • VBA
  • 还有很多...

编辑:我刚刚意识到问题是关于优雅的导出方式。在这种情况下,您的做法并没有太大问题。但是对于 Excel 端的格式化,我支持我的(很大程度上无关但对某些人有用)的帖子。:)

于 2013-03-21T12:37:01.820 回答