Chcę czytać i pisać plik Excela z Javy z 3 kolumnami i N wierszami, drukując po jednym ciągu w każdej komórce. Czy ktoś może mi podać prosty fragment kodu? Czy muszę używać zewnętrznej biblioteki, czy też Java ma do niej wbudowaną obsługę?
Chcę wykonać następujące czynności:
for(i=0; i <rows; i++)
//read [i,col1] ,[i,col2], [i,col3]
for(i=0; i<rows; i++)
//write [i,col1], [i,col2], [i,col3]
ExcelCell.getValue()
każdą z nich. Na przykład zobacz ten przykład czytania , również do pisania możesz sprawdzić ten przykład.Odpowiedzi:
Wypróbuj Apache POI HSSF . Oto przykład, jak czytać plik Excela:
Na stronie dokumentacji masz również przykłady tego, jak pisać do plików Excela.
źródło
HSSFSheet
jestgetPhysicalNumberOfRows()
metoda wydawała się zwraca liczbę niepustych wierszy (to nie było dla mnie oczywiste, że to co «fizyczne» rozumie). Tak więc, jeśli twój plik Excela zawiera dużo pustych wierszy (np. Ze względu na formatowanie), możesz mieć więcej szczęścia przy używaniurows = sheet.getLastRowNum();
. Powinno to również oznaczać, że możesz usunąć sztuczkę (patrz komentarz) z pierwszej pętli:for(int i = 0; i <= rows; i++) {
(zwróć uwagę na zmianę z<
na<=
).Apache POI może to zrobić za Ciebie. W szczególności moduł HSSF . Szybkie przypomnienie jest najbardziej przydatna. Oto, jak zrobić, co chcesz - w szczególności utwórz arkusz i zapisz go.
źródło
Najpierw dodaj wszystkie te pliki jar w ścieżce klasy projektu:
Kod do zapisu w pliku excel:
Kod do odczytu z pliku Excel
źródło
Możesz również rozważyć JExcelApi . Uważam, że jest lepiej zaprojektowany niż POI. Jest tutorial tutaj .
źródło
Jest nowe, łatwe i bardzo fajne narzędzie (10x dla Kfir): xcelite
Pisać:
Czytać:
źródło
Do odczytu pliku xlsx możemy użyć bibliotek Apache POI Wypróbuj:
źródło
.csv lub POI z pewnością to zrobią, ale powinieneś być świadomy JExcela Andy'ego Khana . Myślę, że jest to zdecydowanie najlepsza biblioteka Java do pracy z programem Excel.
źródło
i upewnij się, że do swojego projektu dodano słoiki poi i poi-ooxml (org.apache.poi)
źródło
Wystarczy zwykły plik CSV
źródło
Do odczytu danych ze skoroszytów .xlsx potrzebujemy klas XSSFworkbook.
XSSFWorkbook xlsxBook = new XSSFWorkbook(fis);
XSSFSheet sheet = xlsxBook.getSheetAt(0);
itp.Musimy użyć Apache-poi 3.9 @ http://poi.apache.org/
Aby uzyskać szczegółowe informacje wraz z przykładem, odwiedź: http://java-recent.blogspot.in
źródło
Jasne, poniższy kod okaże się przydatny i łatwy do odczytania i napisania. Jest to
util
klasa, której możesz użyć w swojej głównej metodzie, a następnie możesz użyć wszystkich poniższych metod.źródło
używając repozytorium Spring Apache POI
źródło
Edytowałem trochę ten, który jest najczęściej głosowany, ponieważ nie liczył pustych kolumn lub wierszy dobrze, nie do końca, więc oto mój kod, który przetestowałem i teraz mogę pobrać dowolną komórkę w dowolnej części pliku Excela. również teraz możesz mieć puste kolumny między wypełnioną kolumną i odczyta je
źródło
Jeśli liczba kolumn się zmienia, możesz tego użyć
Odpowiednią zależność od prawa można znaleźć tutaj
źródło
Potrzebujesz biblioteki Apache POI i poniższy kod powinien ci pomóc
źródło
Innym sposobem odczytu / zapisu plików Excela jest użycie Windmill . Zapewnia płynny interfejs API do przetwarzania plików Excel i CSV.
Zaimportować dane
Eksportuj dane
źródło
Nie można równolegle czytać i zapisywać tego samego pliku ( blokada odczytu i zapisu ). Ale możemy wykonywać równoległe operacje na danych tymczasowych (np. Strumieniu wejścia / wyjścia). Zapisz dane do pliku dopiero po zamknięciu strumienia wejściowego. Należy postępować zgodnie z poniższymi krokami.
Apache POI - odczyt / zapis tego samego przykładu programu Excel
źródło
Użyj bibliotek Apache POI i spróbuj tego.
źródło
Podczas korzystania z apache poi 4.1.2. Typ komórki nieco się zmienia. Poniżej przykład
źródło
Jeśli potrzebujesz zrobić coś więcej z dokumentami biurowymi w Javie, przejdź do POI, jak wspomniano.
Do prostego czytania / pisania dokumentu Excela, o który prosiłeś, możesz użyć formatu CSV (również jak wspomniano):
źródło
Spowoduje to zapisanie tabeli JTable do pliku oddzielonego tabulatorami, który można łatwo zaimportować do programu Excel. To działa.
Jeśli zapiszesz arkusz programu Excel jako dokument XML, możesz również utworzyć plik XML dla EXCEL z kodem. Zrobiłem to słowem, więc nie musisz używać pakietów innych firm.
Może to spowodować wyjęcie JTable, a następnie po prostu zapisanie tabulatora oddzielonego do dowolnego pliku tekstowego, a następnie zaimportowanie do programu Excel. Mam nadzieję, że to pomoże.
Kod:
źródło