Bonjour à tous,
Je possède Office365 et je dois importer un fichier Excel assez imposant provenant d'un fournisseur (+- 90.000 lignes sur 15 colonnes).
En fait, nous recevons tous les jours ce fichier qui jusqu'à il y a une semaine, s'importait sans trop de problème via une machine avec Win7 + Office 2003
Maintenant elle est passée en Windows 10 et Office 365.
A chaque itération pour récupérer la valeur d'une cellule, ça prend +- 2 sec. Faites le compte avec toutes les cellules (15*90 000 * 2)...
J'ai passé pas mal de temps sur Google et essayé beaucoup de reconfiguration d'excel mais ça ne change rien. (Désactivation accélération matérielle, désactivation animation, etc.)
Avez-vous déjà eu le cas ? Avez-vous trouvé une solution ?
PS: Comportement assez cocasse, Lors de l'itération, si j'affiche l'instance Excel et que je bouge ma souris sur le document, ça va plus vite.
Si je clique sur le titre du document Excel et que je laisse le clic enfoncé, ça va encore plus vite.
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Visible = true; Microsoft.Office.Interop.Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"d:\Test.xlsx"); Microsoft.Office.Interop.Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1]; string c = ""; int count = xlWorksheet.Cells.Find("*", System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows, Microsoft.Office.Interop.Excel.XlSearchDirection.xlPrevious, false, System.Reflection.Missing.Value, System.Reflection.Missing.Value).Row; for (int i = 1; i <= count-1; i++) { c = xlWorksheet.Cells[i, 1].Text; button1.Text = i.ToString(); button1.Refresh(); }
Partager