Cześć!
Sytuacja jest taka że program do zwrotu akcyzy wypluwa plik w postaci html gdzie zawarte są potrzebne mi dane w tabeli. Jest to kilkaset wierszy a nazwy kolumn to imię nazwisko numer konta, kwota, adres itd. Chodzi o to żeby stworzyć z użyciem tych danych plik masowych przelewów bankowych w formacie Elixir-O. Napisałem prosty program okienkowy który pobiera dane z pliku tekstowego wiersz po wierszu, następnie uzupełnia o odpowiednie brakujące pola w wierszu i zapisuje do nowego pliku. Wtedy można już importować do banku taki plik. Działa ale jest pewna niedogodność, trzeba z wyświetlonego w przeglądarce pliku html, ręcznie zaznaczać tekst w tabeli, skopiować, wkleić do notatnika, zapisać do pliku i dopiero otworzyć w moim programie który przetworzy taki plik do odpowiedniej postaci. Jaki by był w miarę prosty sposób aby odczytać z pliku html tylko tekst wyświetlany w tabeli, bez żadnych znaczników? Jest dużo bibliotek do przetwarzania xml, html ale jestem początkujący i nie bardzo wiem jak ich użyć. Można by tworzyć wiersze z danymi odczytywanymi po znacznikach TR,TD, coś w tym stylu...
0
0
Bibliotek uzywasz tak jak innych rzeczy (z np biblioteki standardowej). Nie rozumiem problemu.
Moze powiedz z czym sobie nie radzisz to bedziemy mogli pomoc
0
możesz skorzystać z https://jsoup.org/
0
trojanus napisał(a):
możesz skorzystać z https://jsoup.org/
właśnie próbuje korzystać z jsoup. Coś robię źle bo liczba komórek w wierszu jest zero a powinna być 4 w wierszu:
Document doc;
File plikHtml = new File(filePatch);
try {
doc = Jsoup.parse(plikHtml, "UTF-8");
ArrayList<String> wierszPrzelewu = new ArrayList<>();
Element table = doc.select("table").get(1); //select the second table.
Elements rows = table.select("tr");
for (int i = 0; i < rows.size(); i++) //select first row.
{
Element row = rows.get(i);
Elements cols = row.select("td");
int j=0;
do {
wierszPrzelewu.add(cols.get(j).text());
j++;
}
while (j<cols.size());
}
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
kod pliku html, skrócony do kilku wierszy bo oryginalnie ma 2019 wystąpień :
<html><head><meta charset="WINDOWS-1250"> <style type="text/css">td.text { mso-number-format:\@; }</style> </head><body> <font size="+1"> <style type="text/css"> td.tcol001 { mso-number-format:\@; } td.tcol002 { mso-number-format:\@; } td.tcol003 { mso-number-format:\@; } td.tcol004 { mso-number-format:0\.00; } </style>Program: Zwrot Akcyza (AK w.7.0.2.5) /Druk: TAK-AK7 | UG Wysokie, dnia: 2019.11.22 |
Lista wypłat przelewowych do realizacji za okres 2019 II
</pre>
Lp | Wnioskodawca | Konto | Kwota |
---|---|---|---|
1 | Wilczyński Grzegorz Józef | WILCZYŃSKI GRZEGORZ | 491,19 |
23-145 Wysokie | |||
Kajetanów 25 | SBP PIASKI O/WYSOKIE | ||
158689000797075109856240010 | |||
2 | Bielak Tadeusz | BEDNARZ TADEUSZ JANUSZ | 397,56 |
23-145 Wysokie | |||
Nowy Dwór 37 | SBP PIASKI | ||
858689000796982456130000010 | |||
3 | Brydala Sylwia | BRYDALA SYLWIA | 245,89 |
23-145 Wysokie | |||
Giełczew Pierwsza 108 | SBP PIASKI | ||
198689000728574779830000010 |