2009-03-10 9 views

Répondre

1

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

0

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.

+0

Il s'agit d'une valeur de chaîne. – Dhana

+0

Cela devrait simplifier votre recherche, la solution d'indexation pourrait-elle être appropriée? – Bravax

1

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

Questions connexes