从IEnumerable对象导出到Excel数据表中的数据在c#中的优雅方式?

我的数据保存在一个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,但是我认为它会引入额外的一层不必要的复杂性。

你怎么看?

谢谢

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

这实际上取决于你想要达到的效果。

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

  • EPPlus支持:
  • 单元格范围
  • 单元格样式(边框,颜色,填充,字体,数字,alignment方式)
  • 图表
  • 图片
  • 形状
  • 注释
  • 保护
  • encryption
  • 数据透视表
  • 数据validation
  • 条件格式
  • VBA
  • 还有很多…

编辑:我只是意识到这个问题是关于优雅的出口方式。 在这种情况下,你已经做的事情没有什么问题。 但为了在Excel上进行格式化,我支持我的(基本上不相关但对某些有用的)文章。 🙂