>基本上我需要的是复制的 excel 文件(非空白单元格)的内容,以类似的结构复制IEnumerable<IEnumerable<string>> contents;
第一个 IEnumerable 用于行,第二个用于列。
我已经在工作是使用以下方法加载文件:
var excel = new ExcelQueryFactory("file.xls");
提前感谢伙计们。
答案是:
var excel = new ExcelQueryFactory("file.xls");
var result = excel.WorksheetNoHeader().ToList().Select(x => x.Select(y => y.ToString()).AsEnumerable());
感谢您提供的帮助。
你可以尝试这样的事情,你可以自己编写额外的逻辑来拉入字段数据而不是=到字符串。空将文件路径替换为文件路径位置所在的位置
您还可以使用 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);
}
首先将数据放入类似数据表的东西中,然后使用 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();
根据文档,解决方案应该像下面一样简单:
var excel = new ExcelQueryFactory("file.xls");
var result = excel.Worksheet()
.Select(x => x.Select(y => y.ToString()));