• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

csv erzeugen

krackmoe

Neues Mitglied
Ich möchte ein .csv File erzeugen mit Daten aus der Datenbank.
Das runterladen und erstellen funktioniert prinzipiell.
Nur es steht einfach irgendwas drin in der Datei dann, schaut so aus wie Binärdaten.... also nicht lesbar.

Lokal bei mir funktioniert.
Online am Server nicht...

Bis kurz bevor ich den ByteArrayInputStream erzeuge, schaut der csvString wenn ich ihn mir ausgeben lasse richtig aus.
D.h. der Fehler muss auftauchen, in der while Schleife wenn ich mir die einzelnen Werte aus dem ByteArrayInputStream ausgeben lasse.

Ich versteh nur nicht wo da der Fehler liegt, weil es ja Lokal geht...

Code:
String[] csvFields = { "TERMIN.TERMIN_ID", "TERMIN_DATUM",
                        "TERMIN_VON", "TERMIN_BIS", "UAINTERN_KBZ",
                        "TERMIN_STATUS"" };
 
                StringBuffer csvString = new StringBuffer(64000);
                // FIELDNAMES
                csvString.append(concatArray(csvFields, ";", 'u', true));
                csvString.append("\r\n");
                try {
                    rs = terminFilter(concatArray(csvFields, ", ", 'u'), filter, conn);
                    while (rs.next()) {
                        for (int i = 1, n = csvFields.length; i <= n; i++) {
                            switch (i) {
                            case 3:
                            case 4:
                                csvString.append("\""+ eliminateNull(rs.getString(i).substring(0, 5)));
                                break;
                            case 6:
                                csvString.append("\""+ getTerminStatus(rs.getString(i)));
                                break;
                            case 20:
                                csvString.append("\""+ getTerminTyp(rs.getString(i)));
                                break;
                            default:
                                csvString.append("\""+ eliminateNull(rs.getString(i)));
                                break;
                            }
                            if (i < n)
                                csvString.append("\";");
                            else
                                csvString.append("\"\r\n");
                        }
                    }
                    rs.close();
                } catch (SQLException e) {
                    log.handleException(e);
                }
                ByteArrayInputStream bais = new ByteArrayInputStream(csvString.toString().getBytes("ISO-8859-15"));
                try {
                    response.reset();
                    response.setContentType("text/csv");
                    
                    Date today = new Date();
                    DateFormat formater = new SimpleDateFormat("yyyyMMdd");
                    String filename = p_id + "_" + formater.format(today) + ".csv";
                    String disHeader = "attachment; filename=\"" + filename + "\"";
                    response.setHeader("Content-Disposition", disHeader);
                    int i;
                    
                    while ((i = bais.read()) != -1) {
                        out.write(i);
                    }
                    bais.close();
                    out.close();
                } catch (IOException e) {
                    System.out.println("EXCEPTION "+e.getMessage());
                    bais.close();
                    out.close();
                    bais = null;
                }
 
Zurück
Oben