获取“无法找到源类型'ExcelQueryable <t>'的查询模式的实现。”错误

时间:2017-11-28 15:52:35

标签: c# excel linq linq-to-entities linq-to-excel

我正在使用LinqToExcel Nuget包来读取excel文件。

以下是我的代码

            var excelFile = new ExcelQueryFactory("DeployQueues");

        var tableData = from z in excelFile.Worksheet<AllQueues>("Data")
                        select z;

但是我遇到了编译器错误。

Could not find an implementation of the query pattern for source type 
'ExcelQueryable<AllQueues>

class for AllQueues

 public class AllQueues 
 {
    [ExcelColumn("Company Title")] 
    public string Name { get; set; }

    [ExcelColumn("Providence")] 
    public string State { get; set; }

    [ExcelColumn("Employee Count")] 
    public string Employees { get; set; }

 }

2 个答案:

答案 0 :(得分:0)

添加引用 Remotion.Data.Linq.dll 。你可以在Nuget;

找到它

https://staging.nuget.org/packages/Remotion.Data.Linq/

答案 1 :(得分:0)

我认为使用LINQToExcel的文档并不好。

我使用了以下代码。

        string fileName = @"YouPath";
        string conn = string.Empty;
        DataTable dtexcel = new DataTable();
        conn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName 
        + ";Extended Properties='Excel 12.0;HDR=NO';"; //for above excel 
        2007 

        using (OleDbConnection con = new OleDbConnection(conn))
        {
            con.Open();
            DataTable Sheets = 
            con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

            try
            {
                OleDbDataAdapter oleAdpt = new OleDbDataAdapter("select * 
                from [WorksheetName$]", con); //here we read data from 
                sheet1  
                oleAdpt.Fill(dtexcel); //fill excel data into dataTable  
            }
            catch (Exception ex)
            {
            }
        }
        return dtexcel;