Mam problem z eksportowaniem moich danych do arkusza Excela, jest to spowodowane kodem, który napisali inni twórcy w moim zespole. Tak więc głównym problemem jest eksport danych do Excela lub .cvs przy użyciu strony JSP, ale bez użycia kodu HTML. Każda sugestia również pomoże mi odkryć na mojej rozwijającej się arenie. Dziękuję za Twój wysiłek.Strona JSP bez kodu HTML do eksportowania danych do arkusza Excela
Odpowiedz
Lepiej użyj do tego celu serwletu. Surowy kod Java nie należy do pliku JSP, to po prostu przepis na maintenance trouble.
Na początek tworzenia prostych Java klasy narzędzie, które przyjmuje na przykład List<List<T>>
lub List<Data>
(gdzie Data
oznacza jeden wiersz), co odpowiada zawartości CSV i jest OutputStream
jako argumenty sposobu i zapisu logiki, który wykonuje zadanie kopiowania danych.
Gdy już to zrobisz, utwórz klasę Servlet, która pobiera jakiś identyfikator pliku CSV jako parametr żądania lub pathinfo (zalecam używanie pathinfo, ponieważ pewien webbrowser opracowany przez zespół w Redmond mógłby nie wykryć nazwy pliku/typu mimetowego w przeciwnym razie), używa identyfikatora, aby uzyskać od niego List<List<T>>
lub List<Data>
i zapisuje go do OutputStream
z HttpServletResponse
wzdłuż zestawu poprawnych nagłówków odpowiedzi.
Oto prosty przykład kickoff:
public static <T> void writeCsv (List<List<T>> csv, char separator, OutputStream output) throws IOException {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, "UTF-8"));
for (List<T> row : csv) {
for (Iterator<T> iter = row.iterator(); iter.hasNext();) {
String field = String.valueOf(iter.next()).replace("\"", "\"\"");
if (field.indexOf(separator) > -1 || field.indexOf('"') > -1) {
field = '"' + field + '"';
}
writer.append(field);
if (iter.hasNext()) {
writer.append(separator);
}
}
writer.newLine();
}
writer.flush();
}
Oto przykład, jak można go używać:
public static void main(String[] args) throws IOException {
List<List<String>> csv = new ArrayList<List<String>>();
csv.add(Arrays.asList("field1", "field2", "field3"));
csv.add(Arrays.asList("field1,", "field2", "fie\"ld3"));
csv.add(Arrays.asList("\"field1\"", ",field2,", ",\",\",\""));
writeCsv(csv, ';', System.out);
}
A wewnątrz serwletu można w zasadzie zrobić:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename = request.getPathInfo();
List<List<Object>> csv = someDAO().list();
response.setHeader("content-type", "text/csv");
response.setHeader("content-disposition", "attachment;filename=\"" + filename + "\"");
writeCsv(csv, ',', response.getOutputStream());
}
Mapa ten serwlet na czymś takim jak /csv/*
i wywołaj go jako coś takiego jak http://example.com/context/csv/filename.csv
. To w zasadzie wszystko. Nazwa pliku w pathinfo jest ważna, ponieważ pewien webbrowser opracowany przez zespół w Redmond ignoruje część filename
nagłówka Content-Disposition
i używa zamiast niej ostatniej części ścieżki adresu URL.
- 1. Kodowanie UTF-8 podczas eksportowania tabeli HTML do Excela
- 2. Droolsa do prześcignięcia arkusza Excela
- 3. JavaScript - eksport danych tabeli HTML do Excela
- 4. Jak napisać kolekcję VBA do arkusza Excela
- 5. vba: Importowanie pliku tekstowego do arkusza Excela
- 6. Eksportowanie tabel jsp do Excela, słowo, pdf
- 7. Tablica HTML do Excela Javascript
- 8. Eksportuj tabelę HTML do Excela
- 9. Javascript do eksportu tabeli html do Excela
- 10. Eksportowanie z SSRS do Excela bez nagłówków
- 11. Stół HTML do Excela - PHP
- 12. Strona błędu JSP dołączona do poprzedniego wyjścia
- 13. Używanie Excel VBA do eksportowania danych do tabeli MS Access
- 14. Strona ASP.net bez kodu za
- 15. Usuwanie arkusza Excela za pomocą Apache POI
- 16. Wyślij zapytanie do arkusza Excela za pomocą VBA
- 17. Pure JSP bez mieszania HTML, pisząc html jako kod podobny do Java
- 18. Tryb Org nie podświetlił kodu źródłowego C++ podczas eksportowania html
- 19. zmienna od .jsp do strony html
- 20. Eksportuj odpowiedzi tkaniny do Excela
- 21. jak utworzyć tabelę z arkusza Excela?
- 22. jsp: do przodu w Javie bez użycia znacznika JSP?
- 23. Eksportowanie danych z DBGrid do Excela
- 24. C# (WinForms-App) eksportowanie zestawu danych do Excela
- 25. Zmiana nazwy arkusza Excela w Matlab
- 26. jak dołączyć do pliku Excela w nodejs
- 27. AngularJS: wyświetlaj ładowanie kodu HTML do momentu wczytania danych.
- 28. aps_developer_identity.cer do p12 bez eksportowania z Key Chain?
- 29. Jaka jest odpowiednia technologia do pobierania danych do arkusza kalkulacyjnego Excela za pomocą formuły ze źródła .NET?
- 30. Identyfikacja kodu kolorów arkusza Excel za pomocą pakietu XLRD
definately zadanie dla serwletu. +1 – ChadNC
Próbowałem rozwiązania podobnego do tego, ale miałem problemy z pobieraniem pliku przez https. Dlaczego może się nie powieść przez https ?. –
Problem leży gdzie indziej. Zadaj własne pytanie, naciskając przycisk "Zadaj pytanie" po prawej stronie i szczegółowo opracuj problem. – BalusC