Pytanie w sprawie oledb, openxml, c# – OLE DB vs OPEN XML SDK vs Excel.interop

11

Muszę odczytać pliki XLSX i wyodrębnić z nich maksymalną ilość treści. Którego API należy użyć?

OLE DB, otwarty XML SDK lub Excel Interop?

Który jest najłatwiejszy w użyciu?Czy możesz odzyskać wszystkie informacje za pomocą jednego lub drugiego? tj. data, godzina, połączone komórki, tabele, tabele przestawne itp.
Open XML SDK na początku nie byłby tak prosty, ale dobrą rzeczą są dźwiękowe biblioteki open source, które sprawiają, że zadania są banalne. Moja rada jest taka, że ​​jeśli nie masz nic przeciwko korzystaniu z bibliotek DLL innych firm, to najlepszym rozwiązaniem jest Open XML. Dwie doskonałe biblioteki, które mogę zaproponować to ClosedXML i EPPlus. Możesz od razu zacząć sprawdzać Linq, co jest fajne. nawfal

Twoja odpowiedź

1   odpowiedź
17

który najbardziej Ci odpowiada ...

W zależności od danych, które chcesz przeczytać, sugeruję użycie Open XML w Interop lub Ole DB.
Nie znam otwartego zestawu SDK XML, chociaż mam pewne doświadczenieEPPlus Biblioteka, której używam bardzo często i może powiedzieć tylko dobre słowa - jest szybka, łatwa do nauczenia, z dobrymi przykładami. Biblioteka opiera się na formacie Open Office XML, więc przypuszczam, że jest prawie taki sam jak wspomniany SDK i jest w stanie łatwo czytać i pisać pliki Excel 2007 i 2010.
W połączonej sieci znajdziesz bibliotekę, dokumentację i kilka przykładowych projektów „Hello World” do pobrania.

Dlaczego w ogóle ta biblioteka? Dzięki niemu będziesz mógł odczytywać nie tylko wartości komórek, ale także ich kolory, czcionki, szerokości i wysokości, scalanie i wszystkie szczegółowe rzeczy, które nie tylko możesz czytać, ale także modyfikować. Co więcej, do tego nie jest potrzebny program Excel.

Na drugim miejscu - tylko na wypadek, gdybyś musiał wyodrębnićdane tabelaryczne z arkusza roboczego - możesz grać z OLE DB. Obawiam się, że nie będziesz w stanie wydobyć żadnych informacji o formatach, kolorach itp., A dane muszą być zapisane w tabelarycznym arkuszu roboczym, więc możesz traktować je jako tabelę bazy danych.

Ostatni to Interop, ponieważ:
- jest biblioteką COM, więc musisz być bardzo ostrożny, grając z nią za pośrednictwem .NET, ponieważ łatwo jest spowodować brzydkie i trudne do znalezienia przecieki pamięci (potwierdzone przez złe doświadczenia) - jeśli nie pozbędziesz się ich obiektów poprawnie, pozostawia proces Excel.exe otwarty,
- jest znacznie wolniejszy niż poprzednie metody,
- Zasadniczo nie ma już prawie żadnej wartości dodanej, jaką ma jedna z poprzednich metod (EPPlus lub OleDB) i wymaga zainstalowania programu Excel na komputerze klienta, więc po co go używać?

W takim razie powodzenia.

Bardzo wszechstronna odpowiedź, dziękuję. Przetestowałem pakiet SDK openxml i muszę powiedzieć, że wymaga on kilku kodów kodowych. Spójrzmy na EPP. cecemel
Sam Microsoft nie zaleca używania Interop do instalacji serwera Ives
Jednym z powodów, dla których należy przejść trasę COM, będzie kompleksowe API firmy Microsoft. Podczas gdy biblioteki innych firm muszą obejmować przypadek użycia 99 programistów komputerów PC, mogą nie być jeszcze ukończone. Dobra odpowiedź +1. Najbardziej lubię tutaj opcję Open XML. Po prostu smutne, że musisz napisać wiele szablonów. nawfal

Powiązane pytania