从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上进行格式化,我支持我的(基本上不相关但对某些有用的)文章。 🙂