- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 IEnumerable<object>
dataSource 里面包含一个匿名类型的集合。匿名类型的实际结构在设计时是未知的,所以我试图找到一个可以处理任何匿名类型的通用解决方案。
如何将它们加载到 epplus 中以创建电子表格?我有一个名为 ws 的工作表,我试过:
ws.Cells["A1"].LoadFromCollection(dataSource, true);
然而,当它运行时,它会将所有匿名类型的属性输出到一个单元格中:
{ Id = 10000, Title = This is a test }
我尝试使用以下方式传入 MemberInfo:
var members = dataSource.First().GetType().GetMembers();
ws.Cells["A1"].LoadFromCollection(this._dataSource, true,
TableStyles.Medium1, BindingFlags.Public, members);
但这会引发异常:
Supplied properties in parameter Properties must be of the same type as T
关于如何在 C# 中使用匿名类型创建电子表格有什么建议吗?
最佳答案
我测试过
using (var excel = new OfficeOpenXml.ExcelPackage())
{
var sheet = excel.Workbook.Worksheets.Add("Test");
sheet.Cells["A1"].LoadFromCollection(dataSource, true);
excel.SaveAs(new FileInfo(@"C:\Temp\Test.xlsx"));
}
使用此示例数据:
var dataSource = Enumerable.Range(1, 100).Select(i => new{ ID=i, Title="Title " + i });
它工作正常。它创建了包含正确标题的两列和 100 行。
但是只有在编译时知道结构时才应该使用匿名类型。
您可以改用 DataTable
和 LoadFromDataTable
。由于我不知道您是如何创建匿名类型的,所以我只向您展示了一个小示例:
DataTable dataSource = new DataTable();
dataSource.Columns.Add("Id"); // default type is string
dataSource.Columns.Add("Title");
// add other columns
dataSource.Rows.Add("1", "Title1");
// add other rows
using (var excel = new OfficeOpenXml.ExcelPackage())
{
var sheet = excel.Workbook.Worksheets.Add("Test");
sheet.Cells["A1"].LoadFromDataTable(dataSource, true);
excel.SaveAs(new FileInfo(@"C:\Temp\Test.xlsx"));
}
关于c# - epplus 使用匿名类型的 LoadFromCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24534207/
是否可以在 EPPlus 中为整个列设置样式?我希望我可以只使用 Column方法,但是当我这样做时,我得到了奇怪的结果: //Sets all cells in all columns to Red
有人知道如何使用 EPPLUS 设置条件格式的字体颜色吗? Using rng = ws.Cells("A7:AD29") Dim condSumLn = ws.ConditionalForm
我正在查看 POST 以使用 EPPlus 在 Excel 中创建多级可折叠分组,但我无法在现有组中创建内部组。 请参阅我在这里使用的示例文件 看来,我需要为第 14-18 行设置 OutlineLe
示例。埃普拉斯怎么样? Sheet.Cells["a1:d1"].Column.Width = 10; 在 Excel 互操作中: Sheet.get_Range("a1", "d1").Column
我在使用 EPPlus 处理 Excel 文档中的注释时遇到了一些问题。我可以添加评论并删除它们,但有时它不成功。 我正在使用注释来显示 Excel 文件处理结果的验证消息,并且当该文件被重新处理时,
我正在将 SSRS 报告导出到单独的 excel 文件中,并使用 EPPlus 将它们合并到一个文件中。合并成功,但当我尝试在 Excel 中打开文件时出现以下错误。 我删除了报告数据以生成空报告,但
我正在使用EPPlus读取excel工作表并将数据加载到数据表中以执行进一步的操作,然后将修改后的数据保存回excel文件中。 下面的代码检查单元格值是否为浮点值,然后将浮点值转换为日期时间。 当单元
通过查看EPPlus随附的示例,我已经成功创建了数据透视表,但是我无法为其设置正确的报告布局。我希望它是“表格格式”,而不是“大纲”或其他格式。在我看来,EPPlus现在不支持此功能,但是也许我缺少了
我使用 EPPlus 阅读工作表。在此工作表中,我需要的数据在列 B-D 中.在栏目A有静态值,我会忽略。 col A 中的值填写到Row 1000 .但是,我需要的数据只会在那里,例如 Row 45
在 EPPlus 中,我可以使用 workSheet.Cells[x, y].AddComment() 将注释添加到工作表中的单元格 但是如何从给定单元格中删除注释 - 没有 workSheet.Ce
设置列的 WrapText=true 后,我想查看行的新高度(即文本是否换行,行数)。行的 Height 属性似乎未更新。 ExcelPackage pkg = new ExcelPa
我目前正在与一位在 Excel 中手动生成发票的客户合作。我已经使用 epplus 自动为他们生成这个文件。 我的要求之一是每个页面周围都应该有一个边框,并以大约 7 行长的标题开始(并且每行具有不同
更改单元格的值时遇到问题。这是我的代码: FileInfo newFile = new FileInfo(file); ExcelPackage pck = new ExcelPackage(newF
当我使用 EPPlus 自动调整格式化为日期字符串的列时,自动调整机制使用未格式化的字符串作为列宽度的度量。 这是一个错误还是我做错了什么? 代码 sheet.Column(2).Style.Numb
using (var pck = new ExcelPackage(new FileInfo(wb_path))) { ExcelWorksheet ws = pck.Workbook.Wor
我有以下代码行,它根据特定列对工作表中的数据进行升序排序。问题是,它考虑了第一行(单元格 A1、B1 等)。 worksheet.Cells["A:AA"].Sort(new int[] { 5, 1
我正在.NET 4.0 命令行应用程序上使用 EPPlus 库创建电子表格。 我成功地从数据库中加载了所有数据,最后我正在创建一个图形,这是我的代码: var chart = sheet.Drawin
如何使用 EPPLus 将图表创建为单独的工作表,而不是作为现有工作表中的绘图? 最佳答案 在 4.0.4.0 版本(从 codeplex 下载代码,以纠正保存文件中的错误),您可以使用: workb
我正在运行一个带有 EPPlus 库的 C# 项目,我需要它检查各个列/行中的数据的单元格,然后找到“关键字”,可以说并将其与其他各个列/行中的数据匹配。 我需要知道一种将一个单元格中的数据与另一个单
我在使用 C# 和 EPPlus 从工作簿中读取某些工作表时遇到问题。 错误信息 name contains invalid characters 即使多次检查工作簿中的工作表名称、文件名和列标题以确
我是一名优秀的程序员,十分优秀!