Je dois rechercher une valeur supérieure à 5000 enregistrements d'Excel.Comment rechercher une valeur dans un fichier Excel à partir d'une application .net?
Quelle est la meilleure approche pour accomplir cela dans l'application Windows .net?
Je dois rechercher une valeur supérieure à 5000 enregistrements d'Excel.Comment rechercher une valeur dans un fichier Excel à partir d'une application .net?
Quelle est la meilleure approche pour accomplir cela dans l'application Windows .net?
Puisque vous essayez de rechercher les enregistrements 5000, je suppose que vous devez essayer de rechercher les valeurs de thro '. Vous pouvez utiliser le "Range.Find" de l'API interop pour le faire.
private void OpenExcelFile()
{
Excel.Application exlApp = new Microsoft.Office.Interop.Excel.Application();
if (exlApp == null)
{
MessageBox.Show("Excel app object could not be created");
}
else
{
exlFileSelector.FileName = @"*.xls";
if (exlFileSelector.ShowDialog() == DialogResult.OK)
{
Excel.Workbook wrkBook = exlApp.Workbooks.Open(exlFileSelector.FileName, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, true, true);
Excel.Sheets sheetList = wrkBook.Sheets;
Excel.Range search = exlApp.get_Range("A1", "C5");
search.Find("FindMe", null, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false, null, null);
}
}
}
Pour en savoir plus: How to: Search for Text in Worksheet Ranges
Votre valeur est-elle une valeur calculée produite par l'une des formules du tableur, ou une valeur réelle prédéterminée?
Si c'est le plus tard, vous pourriez économiser des feuilles de calcul au format XML et les analyser de façon appropriée
ou
Selon la technologie d'indexation dont vous disposez, vous pourriez être en mesure de les indexer, rechercher ensuite l'index et trouver la valeur appropriée .
(Ce serait mon approche préférée, maintenant que je l'ai pensé.)
Si c'est la première, la seule option que je peux penser est d'ouvrir chacun en utilisant les bibliothèques Interop et utiliser l'API.
est un composant tableur compatible Excel pour .NET qui prend en charge une API Find qui est similaire à l'API Rechercher Excel. Vous pouvez rechercher des valeurs ou des formules, ou calculer des formules, puis rechercher les résultats si nécessaire. Voici un bref échantillon qui charge un classeur et trouve la première cellule qui commence par « John »:
// Open an xlsx workbook (can also open xls).
IWorkbook workbook = Factory.GetWorkbook(@"C:\tmp\Data.xlsx");
// Find the first cell which starts with "John".
IRange foundCell = workbook.Worksheets["Sheet1"].Cells.Find("John*", null,
FindLookIn.Values, LookAt.Whole, SearchOrder.ByColumns, SearchDirection.Next, true);
if (foundCell != null)
Console.WriteLine("found {0} in cell {1}", foundCell.Text, foundCell.Address);
Vous pouvez télécharger l'évaluation gratuite here.
Clause de non-responsabilité: Je possède SpreadsheetGear LLC
Il s'agit d'une valeur de chaîne. – Dhana
Cela devrait simplifier votre recherche, la solution d'indexation pourrait-elle être appropriée? – Bravax