Mam arkusz kalkulacyjny Excel, który będzie siedzieć na dysku sieciowego. Dostęp do niego musi mieć moja aplikacja WinForm C# 3.0 (wielu użytkowników może korzystać z aplikacji i jednocześnie naciskać ten arkusz kalkulacyjny). W jednym arkuszu jest dużo danych. Te dane są podzielone na obszary, które nazwałam zakresami. Muszę mieć dostęp do tych zakresów indywidualnie, zwrócić każdy zakres jako zbiór danych, a następnie powiązać go z siatką.Konwersja zakresu Excel do ADO.NET DataSet lub DataTable, itp.
Znalazłem przykłady, które używają OLE i mam je do pracy. Jednak widziałem kilka ostrzeżeń na temat korzystania z tej metody, a także w pracy używaliśmy Microsoft.Office.Interop.Excel jako standard do tej pory. Naprawdę nie chcę odejść od tego, chyba że muszę. Nasi użytkownicy będą używać pakietu Office 2003 w miarę możliwości.
mogę zakres muszę z następującego kodu:
MyDataRange = (Microsoft.Office.Interop.Excel.Range)
MyWorkSheet.get_Range("MyExcelRange", Type.Missing);
OLE sposób było miłe, jak zajęłoby mój pierwszy wiersz i skręcić w tych kolumnach. Moje zakresy (12 w sumie) są w większości różne od siebie w liczbie kolumn. Nie wiedziałem, czy te informacje wpłyną na jakiekolwiek rekomendacje.
Czy istnieje sposób użycia Interop i odzyskania zwróconego zakresu z powrotem do zestawu danych?
Doceniam wszystkie odpowiedzi. Ponieważ nie mogłem znaleźć niczego wbudowanego, poszedłem do przodu i po prostu przetasowałem zakres i stworzyłem datatable "w locie". Wszystkie sugestie tutaj wymienione naprawdę działałyby, po prostu nie chciałem używać OLEDB i nie mogę w tym momencie wprowadzić biblioteki 3rd party. Dziękuję za szybkie odpowiedzi. Bardzo doceniane. – user295197
To jest pseudo kod ... –