C# 如何使用枚举excel文件http://code.google.com/p/linqtoexcel/ 在c中

C# 如何使用枚举excel文件http://code.google.com/p/linqtoexcel/ 在c中,c#,linq-to-excel,C#,Linq To Excel,基本上,我需要的是excel文件的内容,非空白单元格复制在类似IEnumerable contents的结构中; 第一个IEnumerable用于行,第二个IEnumerable用于列。 我已经开始使用以下方法加载文件: var excel = new ExcelQueryFactory("file.xls"); 提前感谢各位。您可以尝试这样的方法,您可以自己编写附加逻辑来拉入字段数据而不是字符串。空将文件路径替换为文件路径位置所在的位置 您还可以使用Linq to Excel开源项目代码.g

基本上,我需要的是excel文件的内容,非空白单元格复制在类似IEnumerable contents的结构中; 第一个IEnumerable用于行,第二个IEnumerable用于列。 我已经开始使用以下方法加载文件:

var excel = new ExcelQueryFactory("file.xls");

提前感谢各位。

您可以尝试这样的方法,您可以自己编写附加逻辑来拉入字段数据而不是字符串。空将文件路径替换为文件路径位置所在的位置

您还可以使用Linq to Excel开源项目代码.google.com/../linqtoexcel轻松地从Excel获取数据。它为您处理OleDB连接,您可以使用where子句。您所要做的就是创建一个具有与excel列名对应的属性的类。下面是一个例子:

IExcelRepository<Client> repo = new ExcelRepository<Client>(@"C:\file.xls");

var largeClients = from c in repo.Worksheet

                  where c.Employees > 200

                  select c;

foreach (Client client in largeClients)
{
   Console.WriteLine(client.ClientName);
}

首先将数据放入类似datatable的内容中,然后使用as Enumerable从中进行选择

var x = _xlData.Tables[0].Rows
           .Cast<DataRow>()
           .Where(row => !row.ItemArray.All(field => field is System.DBNull ||   
                                            string.Compare((field as string).Trim(), 
                                            string.Empty) == 0))
           .AsEnumerable();

根据文档,解决方案应与以下内容一样简单:

var excel = new ExcelQueryFactory("file.xls");
var result = excel.Worksheet()
                  .Select(x => x.Select(y => y.ToString()));
答案是:

var excel = new ExcelQueryFactory("file.xls");
var result = excel.WorksheetNoHeader().ToList().Select(x => x.Select(y => y.ToString()).AsEnumerable());

感谢您提供的帮助。

请自便:感谢您在@DanielHilgarth提出的非常有用的建议,但我已经看过文档,没有发现任何线索。这就是我在这里提出这个问题的原因。