Как получить данные из таблицы (листа) Excel SQL запросом?
Данные из листа Excel, подключенного через ADO, можно показать в DBGrid, добавлять, править, удалять строки. Используем подключение из предыдущего примера.
Delphi:
ADODataSet1.Connection := Conn;
ADODataSet1.CommandText := 'select * from [Лист1$]'#10 + 'where [HireDate] >= #01/01/1994#'; ADODataSet1.Open;
// Можно использовать именованную область ячеек, названную "MyRange"
ADODataSet1.CommandText := 'select * from MyRange'; ADODataSet1.Open;
// Возможно использовать указаную область ячеек
ADODataSet1.ParamCheck := False; // ОБЯЗАТЕЛЬНО, иначе exception!!!
ADODataSet1.CommandText := 'select * from [Лист1$A12:F42]';
C#:
System.Data.OleDb.OleDbCommand oCmd = new System.Data.OleDb.OleDbCommand(); System.Data.OleDb.OleDbDataAdapter oAdapt = new System.Data.OleDb.OleDbDataAdapter(); System.Data.DataSet oDS = new System.Data.DataSet("DbDemos"); oCmd.Connection = oConn; // Выборка данных из одной таблицы (листа) с именем "Employee" oCmd.CommandText = "select * from [Employee$]"; // Выборка данных из именованной области ячеек c именем "MyRange" oCmd.CommandText = "select * from MyRange"; // Выборка из заданной области ячеек oCmd.CommandText = "select * from [Employee$A10:F40]"; // Выборка из 3 связанных таблиц (листов) книги oCmd.CommandText = "SELECT O.OrderNo, O.SaleDate, O.PaymentMethod, O.ItemsTotal,\n" + "E.FirstName, E.LastName, C.Company\n" + "FROM [customer$] AS C\n" + " INNER JOIN ([employee$] AS E\n" + " INNER JOIN [orders$] AS O ON E.EmpNo = O.EmpNo)\n" + " ON C.CustNo = O.CustNo"; // Получам данные в DataSet посредством OleDbDataAdapter'а oAdapt.SelectCommand = oCmd; oAdapt.Fill(oDS, "Employee"); // Покажем данные в DataGrid'е dataGrid1.DataSource = oDS.Tables["Employee"];
Внимание! Если данные были получены в DataSet из именованной области ячеек, то, при попытке добавить новые строки, вы получите исключение "Cannot expand named range". Если данные были получены с указанием области ячеек, то новые записи будут добавляться после последней строки диапазона, но, если будет вызван метод Requey, эти новые строки не будут включены в DataSet.
Retrieve and Edit Excel Data with ADO
How to query and display excel data by using ASP.NET, ADO.NET, and Visual C# .NET
You receive error messages when you try to use ADO.NET OLEDbDataAdapter to modify an Excel workbook
How To Use ADO with Excel Data from Visual Basic or VBA
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий