Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480

    Problema formattazione testo

    Ciao a tutti, ho il seguente problema:
    in una JTextArea visualizzo un dato di tipo String : 55°51'51" N , che sulla mia GUI, mi visualizza perfettamente.
    Il problema è la visualizzazione che mi ritrovo esportando il dato nel file .xls cioè diventa così: 55°51'51'' N , non capisco da dove viene fuori il simbolo "Â"
    Potete aiutarmi ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Devo parsare la stringa prima di metterla nel file .xls ?

  3. #3
    Dovresti dirci con che codice e con che libreria creai il file xls, cmq ad occhio è un problema di codifica.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ok questa è la classe per l'esportazione:
    codice:
    import java.io.*;
    import javax.swing.*;
    import javax.swing.table.TableModel;
    
    public class ExcelExporter {
    
        public ExcelExporter() {
        }
    
        public void exportTable(JTable table1, JTable table2, JComboBox combo1, JComboBox combo2, JComboBox combo3, JTextArea lat, JTextArea lon, JTextArea radiazione,  JTextArea inclinazione, JTextArea azimuth, File file) throws IOException {
            ComboBoxModel box1 = combo1.getModel();
            ComboBoxModel box2 = combo2.getModel();
            ComboBoxModel box3 = combo3.getModel();
            TableModel model1 = table1.getModel();
            TableModel model2 = table2.getModel();
            FileWriter out = new FileWriter(file);
    
            try (BufferedWriter bw = new BufferedWriter(out)) {
                bw.write("Citta : " + box1.getSelectedItem().toString() + "\n");
                bw.write("Latitudine : " + lat.getText() + "\t\t\t" + "Longitudine : " + lon.getText() + "\n");
                bw.write("Database di radiazione : " + box2.getSelectedItem().toString() + "\n");
                bw.write("Condizioni di installazione : " + box3.getSelectedItem().toString() + "\n\n");
                for (int i = 0; i < model1.getColumnCount(); i++) {
                    bw.write(model1.getColumnName(i) + "\t");
                }
                bw.write("\t");
                for (int i = 0; i < model2.getColumnCount(); i++) {
                    bw.write(model2.getColumnName(i) + "\t");
                }
                bw.write("\n");
                for (int i = 0; i < model1.getRowCount(); i++) {
                    for (int j = 0; j < model1.getColumnCount(); j++) {
                        bw.write(model1.getValueAt(i, j).toString() + "\t");
                    }
                    bw.write("\t");
                    for (int j = 0; j < model2.getColumnCount(); j++) {
                        bw.write(model2.getValueAt(i, j).toString() + "\t");
                    }
                    bw.write("\n");
                }
                bw.write("\n");
                bw.write("Radiazione Annuale : " + radiazione.getText() + "\n");
                bw.write("Inclinazione ottimale : " + inclinazione.getText() + "\n");
                 bw.write("Azimuth : " + azimuth.getText() + "\n");
            }
            System.out.println("write out to: " + file);
    
        }
    }
    e qui dove la utilizzo:
    codice:
     private void esportaActionPerformed(java.awt.event.ActionEvent evt) {                                        
    
            try {
               
                ExcelExporter exp = new ExcelExporter();
                exp.exportTable(tabellaMesi, tabellaTermocoppia, menuCitta, menuRadiazione, menuCondizioni, latitudine, longitudine, radiazioneAnnuale,  inclinazioneOttimale, azimuth, new File("C:\\Users\\utente\\Desktop\\file.xls"));
                Desktop dt = Desktop.getDesktop();
                dt.open(new File("C:\\Users\\utente\\Desktop\\file.xls"));
            } catch (IOException e) {
                e.getMessage();
    
            }
    
    
        }

  5. #5
    Ciao ho fatto un test abbastanza semplice è il problema su excel 2010 non si pone:
    codice:
    public static void main(String[] args) throws Exception
    	{
    		BufferedWriter writer = new BufferedWriter(new FileWriter("c:/Temp/out.xls"));
    		String toWrite = "55°51'51\" N";
    		writer.write(toWrite);
    		writer.close();
    	}
    P.S
    Quello che stai facendo non è creare un file excel ma bensi un csv.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Un csv ?? Ma me lo apre con excel!!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Un csv ?? Ma me lo apre con excel!!
    Beh, sì... Excel apre anche i CSV (e si pone come programma predefinito).
    Ma prova ad aprire col blocco note un file XLS (o XLSX) creato con Excel: capirai che differenza c'è fra i "formati". Non è l'estensione che dice il tipo di file (l'estensione è solo una parte del nome), ma il suo contenuto.

    Un file CSV è un banalissimo file di testo in cui i campi sono separati da un separatore (tipicamente la virgola, ma spesso è una tabulazione).

    Un file Excel è un complesso file di dati.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ok però vorrei capire. dato che questo file generato deve essere utilizzato come input per Matlab, vorrei capire se matlab lo riconosce come file excel. Sapete dirmi qualcosa a riguardo ?

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non conosco Matlab (l'ho "usato" per un po' all'università, poi l'ho abbandonato, non essendo di mia competenza).
    Se Matlab legge file CSV allora sì, quello è un file CSV (Comma Separated Values, al posto della virgola usi la tabulazione, ma ultimamente non fa differenza). Se Matlab ha una libreria o qualcosa per leggere file Excel, con buona probabilità non gli andrà bene (perchè, appunto, quello non è un file in formato Excel, ma un banale file di testo).

    Se vuoi creare file Excel con Java ti devi appoggiare a librerie esterne: JExcelApi o Apache POI.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Puoi suggerirmi qualche tutorial per l'esportazione di dati da un JTable ad un file excel utilizzando le librerie JExcelApi o Apache POI ???
    Grazie

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.