Le code suivant renvoie les données à partir d'une feuille de calcul dans une grille parfaitementComment fichier excel interroger en C# en utilisant une requête détaillée
[
string excelConnectString = "Provider = Microsoft.Jet.OLEDB.4.0;" +
"Data Source = " + excelFileName + ";" +
"Extended Properties = Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(excelConnectString);
OleDbCommand objCmd = new OleDbCommand("Select * From [Accounts$]", objConn);
OleDbDataAdapter objDatAdap = new OleDbDataAdapter();
objDatAdap.SelectCommand = objCmd;
DataSet ds = new DataSet();
objDatAdap.Fill(ds);
fpDataSet_Sheet1.DataSource = ds;//fill a grid with data
]
La feuille de calcul J'utilise a des colonnes nommées de A et ainsi de suite (juste norme noms de colonnes) et le nom de la feuille est Comptes.
J'ai un problème avec la requête ...
[OleDbCommand objCmd = new OleDbCommand("Select * From [Accounts$]", objConn);]
Comment puis-je faire la chaîne de requête comme ça ...
"Select <columnA>,<columnB>,SUM<columnG> from [Accounts$] group by <columnA>,<columnB>"
..so qu'il renvoie les résultats de cette requête
note: COLUMNA est une sur la feuille, ColumnB est B sur la feuille et columnG est G sur la feuille
Autres alternatives possibles:
- j'ai les données qu'Excel se propagent dans un objet DataTable, comment puis-je interroger l'objet DATATABLE
- j'ai lu sur un objet DataView qu'il peut prendre une table et retourner la table manipulé selon (
<dataviewObject>.RowFilter = "where..."
), mais je ne sais pas comment utiliser la requête que je veux.