Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480

    [JAVA] Problema file in uscita da JTable

    Ciao a tutti,
    sulla mia GUI ho una JTable sulla quale vengono visualizzati dei dati.
    Vorrei che i dati presenti in questa JTable fossero forniti in uscita o come file excel o come file .txt.
    Cioè vorrei inserire all'interno della GUI una sezione "Output options" nella quale, tramite 2 radiobutton, avere la possibilità di scegliere il file di output: o file excel o file .txt
    Poi dopo aver selezionato (tramite il radiobutton) il file di uscita (excel o .txt) , tramite un jbutton (Calcola) , mi fornisca il corrispondente file con i dati presenti nella jtable , nel formato selezionato.
    Avete suggererimenti in merito ?
    Grazie

  2. #2
    Per la costruzione dell'Excel puoi usare le librerie JXL oppure Apache POI (queste ultime poi funzionano anche per gli xslx)
    Per il documento txt puoi facilmente usare le librerie di java come le PrintWriter e così via.

    Poi posso suggerirti anche la stampa della JTable.
    se tu vai a fare
    table.print();
    ti partità la finestra di stampa, a quel punto se hai il pdf distiller o simili puoi stampare su PDF.

    Ciao
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ok grazie.
    sto provando questo codice su netbeans, che dovrebbe produrre un file .xls dai dati contenuti in una jtable.
    Purtroppo il codice resta in esecuzione e ci resta, senza produrmi il file .xls
    Qualcuno potrebbe provarlo e dirmi qualcosa a riguardo?
    Grazie
    codice:
    package javaapplication39;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableModel;
    
    public class ExcelExporter {
            public ExcelExporter() {
            }
    
            public void exportTable(JTable table, File file) throws IOException {
                    TableModel model = table.getModel();
                    FileWriter out = new FileWriter(file);
    
                    for (int i = 0; i < model.getColumnCount(); i++) {
                            out.write(model.getColumnName(i) + "\t");
                    }
                    out.write("\n");
                    for (int i = 0; i < model.getRowCount(); i++) {
                            for (int j = 0; j < model.getColumnCount(); j++) {
                                    out.write(model.getValueAt(i, j).toString() + "\t");
                            }
                            out.write("\n");
                    }
                    out.close();
                    System.out.println("write out to: " + file);
            }
    
            public static void main(String[] args) {
                    String[][] data = { { "Housewares", "$1275.00" }, { "Pets", "$125.00" }, { "Electronics", "$2533.00" }, { "Mensware", "$497.00" } };
                    String[] headers = { "Department", "Daily Revenue" };
    
                    JFrame frame = new JFrame("JTable to Excel Hack");
                    DefaultTableModel model = new DefaultTableModel(data, headers);
                    final JTable table = new JTable(model);
                    JScrollPane scroll = new JScrollPane(table);
    
                    JButton export = new JButton("Export");
                    export.addActionListener((ActionEvent evt) -> {
                        try {
                            ExcelExporter exp = new ExcelExporter();
                            exp.exportTable(table, new File("results.xls"));
                        } catch (IOException ex) {
                            System.out.println(ex.getMessage());
                        }
                    });
    
                    frame.getContentPane().add("Center", scroll);
                    frame.getContentPane().add("South", export);
                    frame.pack();
                    frame.setVisible(true);
            }
    }

  4. #4
    in questo modo stai creando un file txt.
    E' come se ho una tabella in un documento txt, rinomino il file in xls e spero che mi si apre la stessa tabella con Excel.
    Te l'ho detto, usa JXL o Apache POI, fra l'altro sono molto semplici da usare e trovi moltissimi tutorial o esempi che possono aiutarti a creare la tua tabella con decine di personalizzazioni
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.