【问题标题】:Elegant way of exporting data from IEnumerable object to an Excel datasheet in c#? [closed]将数据从 IEnumerable 对象导出到 c# 中的 Excel 数据表的优雅方式? [关闭]
【发布时间】:2013-03-10 22:58:41
【问题描述】:

我的数据保存在 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 转换为像 Convert IEnumerable to DataTable 这样的数据表,但我认为它会引入额外的一层不必要的复杂性。

你的想法是什么?

谢谢

【问题讨论】:

  • 这种方法有什么问题?
  • 没什么。有用。但我认为可能有更好的方法来做到这一点?
  • 如果您有想要改进的工作代码,有一个更合适的 StackExchange 站点 - CodeReview

标签: c# excel datatable ienumerable populate


【解决方案1】:

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

这真的取决于你想要达到的目标。

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

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

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

【讨论】:

  • 谢谢。我现在正在调查。
  • 谢谢!这看起来很棒,我可能会改变我的方法。我正在使用 Microsoft.Office.Interop.Excel 但仍然没有找到如何插入 base64 格式的图像..
  • 没问题。如果您使用 Google 搜索该文档,则该文档非常全面 - 并且可以找到一些示例,使其更容易。把我找到的最好方法传下来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 2016-07-12
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多