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(); } }
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$"; } }
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 "); }
public ExcelFactory(string filename) { this.args = new ExcelQueryArgs { FileName = filename }; }
public static OleDbConnection GetConnection(ExcelQueryArgs args) { var connString = CreateConnectionString(args.FileName); return(new OleDbConnection(connString)); }
private static IQueryExecutor CreateExecutor(ExcelQueryArgs args) { return(new ExcelQueryExecutor(args)); }
public ExcelQuery(ExcelQueryArgs args) : base(CreateExecutor(args)) { }