0

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

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

提前谢谢各位。

4

4 回答 4

1

答案是:

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

感谢您提供的帮助。

于 2012-12-12T17:47:09.403 回答
0

你可以尝试这样的事情你可以自己编写额外的逻辑来拉入字段数据而不是 = 到 string.Empty 用你的文件路径位置替换文件路径

您还可以使用 Linq to Excel 开源项目 (code.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);
}
于 2012-12-12T17:16:55.137 回答
0

首先将数据放入数据表之类的东西中,然后使用 as Enumarable?

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();
于 2012-12-12T17:22:50.593 回答
0

根据文档,解决方案应该如下所示:

var excel = new ExcelQueryFactory("file.xls");
var result = excel.Worksheet()
                  .Select(x => x.Select(y => y.ToString()));
于 2012-12-12T17:28:29.583 回答