Beispiel #1
0
        public static IEnumerable <string> GetColumnNames(ExcelQueryArgs args)
        {
            var con = GetConnection(args);
            var res = new List <string>();

            try
            {
                if (con.State == System.Data.ConnectionState.Closed)
                {
                    con.Open();
                }

                using (var cmd = con.CreateCommand())
                {
                    cmd.CommandText = $"SELECT TOP 1 * FROM [{args.SheetName}$]";
                    var data   = cmd.ExecuteReader();
                    var scheme = data?.GetSchemaTable();
                    foreach (DataRow item in scheme.Rows)
                    {
                        res.Add(item["ColumnName"].ToString());
                    }
                }

                return(res);
            }
            finally
            {
                con.Dispose();
            }
        }
Beispiel #2
0
 public ExcelQueryModelVisitor(ExcelQueryArgs args)
 {
     this.args    = args;
     this.Builder = new SqlBuilder();
     if (args.SheetName != null)
     {
         this.Builder.SheetName = args.SheetName + "$";
     }
     else
     {
         this.Builder.SheetName = "Sheet1$";
     }
 }
Beispiel #3
0
 public ExcelQueryExecutor(ExcelQueryArgs args)
 {
     this.visitor = new ExcelQueryModelVisitor(args);
     this.args    = args;
 }
 public WhereClauseExpressionTree(ExcelQueryArgs args)
 {
     this.args       = args;
     this.listParams = new List <OleDbParameter>();
     this.whereClause.Append("WHERE ");
 }
Beispiel #5
0
 public ExcelFactory(string filename)
 {
     this.args = new ExcelQueryArgs {
         FileName = filename
     };
 }
Beispiel #6
0
        public static OleDbConnection GetConnection(ExcelQueryArgs args)
        {
            var connString = CreateConnectionString(args.FileName);

            return(new OleDbConnection(connString));
        }
Beispiel #7
0
 private static IQueryExecutor CreateExecutor(ExcelQueryArgs args)
 {
     return(new ExcelQueryExecutor(args));
 }
Beispiel #8
0
 public ExcelQuery(ExcelQueryArgs args) :
     base(CreateExecutor(args))
 {
 }