Самый эффективный способ извлечь данные из нескольких файлов .xlsx с помощью Excel Interop в c#? - PullRequest
0 голосов
/ 18 апреля 2020

Я только начал изучать Excel Interop, и мне было интересно, как я могу улучшить производительность своего приложения, реализовав многопоточность или многозадачность.

Мой код выглядит примерно так:

foreach(var path in arrayOfExcelFilePaths){
    excelApp.Workbooks.Open(path);
}
foreach(var wb in excelApp.Workbooks){
    //Read stuff and maybe write stuff
}

Заранее спасибо всем, кто занимается этим.

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Использование Interop - плохая идея в целом. Выполнение вашего кода не будет сильно отличаться от его эквивалента, написанного в макросе VBA, потому что Interop просто запускает процесс Excel в фоновом режиме и реплицирует его функциональность 1-к-1.

Попробуйте OfficeOpen XML или любую другую библиотеку, которая позволяет вам манипулировать содержимым листов Excel без запуска MS Excel, как это делает Interop.

0 голосов
/ 18 апреля 2020

Я настоятельно рекомендую вам использовать библиотеку EPPlus 5 , которая является более новой версией библиотеки EPPlus . Он быстрый и надежный, я использую его годами без проблем.

...