L'angolo del N00b
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.

L'angolo del N00b

Appunti di programmazione per principianti e non
 
IndiceIndice  Ultime immaginiUltime immagini  CercaCerca  RegistratiRegistrati  AccediAccedi  

 

 Oggi combattiamo con i file *.xls

Andare in basso 
AutoreMessaggio
Jambalaya
Admin
Jambalaya


Maschio
Numero di messaggi : 33
Età : 42
Località : Bios
Data d'iscrizione : 21.02.09

Oggi combattiamo con i file *.xls Empty
MessaggioTitolo: Oggi combattiamo con i file *.xls   Oggi combattiamo con i file *.xls Icon_minitimeLun Giu 22, 2009 4:18 pm

Bene come sempre il lavoro mi ha spinto verso una nuova conquista, il formato *.xls , quello dei file Excel insomma per parlare come mangiamo.
Ecco cosa ho trovato ^_^

Esempietto base usando JExcel e il jxl.jar

L'esempio che porto serve a creare un nuovo documento e a scrivere i dati in due diversi fogli dello stesso.

Iniziamo con l'import delle parti necessarie:

Codice:
import java.io.*;
import jxl.*;
import java.util.*;
import jxl.Workbook;
import jxl.write.DateFormat;
import jxl.write.Number;

import jxl.write.*;
import java.text.SimpleDateFormat;

Veniamo ora alla creazione del metodo base:


Codice:

class  create
{
  public static void main(String[] args)
  {
    try
    {
    // Il nome del file in oggetto
      String nomeFile = "input.xls";
    //impostazioni base per l'apertura del documento
      WorkbookSettings ws = new WorkbookSettings();
      ws.setLocale(new Locale("en", "EN"));
      WritableWorkbook workbook = Workbook.createWorkbook(new File(nomeFile), ws);
      //Aggiunta di due fogli
      WritableSheet foglio1 = workbook.createSheet("Foglio1", 0);
      WritableSheet goglio2= workbook.createSheet("Foglio2", 0);
      //richiamo il metodo per la scrittura dei dati
      writeDataSheet(foglio1);
      //richiamo il metodo per l'inserimento di un immagine
      writeImageSheet(foglio2);
      //compilo il foglio e chiudo
      workbook.write();
      workbook.close();     
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }
    catch (WriteException e)
    {
      e.printStackTrace();
    }
  }



}

Creiamo ora il metodo per aggiungere dei dati al primo foglio. Settando prima le impostazioni del carattere e poi aggiungendovi una cella.



Codice:
private static void writeDataSheet(WritableSheet foglio)
    throws WriteException
  {

    //Formattiamo il carattere di scrittura
    WritableFont carattere= new WritableFont(WritableFont.ARIAL,10, WritableFont.BOLD);
    WritableCellFormat formatoCelle= new WritableCellFormat(carattere);
    formatoCelle.setWrap(true);

    //creiamo un etichetta e scriviamo una data in una cella
    Label label = new Label(0,0,"Data",formatoCelle);
    foglio.addCell(label); 
    WritableCellFormat cf1 =new WritableCellFormat(DateFormats.FORMAT9);

    DateTime data = new DateTime(0,1,new Date(), cf1, DateTime.GMT);

    foglio.adCell(data);
}
   
nela definizione degli oggetti da inserire nelle celle i primi due numeri indicano il posizionamento della cella stessa Colonna-Riga

Vediamo come si possono aggiungere inoltre delle immagini o un link su un file *.xls



Codice:
private static void writeImageSheet(WritableSheet foglio)
    throws WriteException
  {
    //Creiamo l'etichetta e attacchiamo l'imagine ad un foglio
    Label label = new Label(0, 0, "Image");
    foglio.addCell(label);
    WritableImage immagine = new WritableImage(0, 3, 5, 7, new File("image.png"));
    foglio.addImage(immagine);

    //creiamo un etichetta e aggiungiamo un hyperlink al foglio
    label = new Label(0,15, "HYPERLINK");
    foglio.addCell(label);
    Formula formula = new Formula(1, 15,
      "HYPERLINK(\"http://www.indirizzo.com", "\"boh\")");
    foglio.addCell(formula);
   
    }

Nel caso si volessero inserire dei diversi formati all'interno delle celle sarà sufficente specificarne il tipo come ad esempio:

Codice:
WritableCellFormat formatoFloat= new WritableCellFormat(NumberFormats.FLOAT);

oppure è possibile specificare un formato come ad esempio:

Codice:
NumberFormat formatoNumerico= new NumberFormat("#.###");
 WritableCellFormat formatoCustom= new WritableCellFormat(formatoNumerico);

Si possono inoltre inserire delle formule, indicando la cella in cui inserire il risultato, e le caselle in cui prendere i dati:

Codice:
Formula formula = new Formula(4,3, "E1+E2");

Per ora è tutto, se trovate altro aggiungete sotto!


EDIT:
Aggiungo il necessario per creare un *xls con La libreria della Apache, poi aprofondisco.

Codice:
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");

// Create a row and put some cells in it. Rows are 0 based.
HSSFRow row = sheet.createRow((short)0);
// Create a cell and put a value in it.
HSSFCell cell = row.createCell((short)0);
cell.setCellValue(1);

// Or do it on one line.
row.createCell((short)1).setCellValue(1.2);
row.createCell((short)2).setCellValue("This is a string");
row.createCell((short)3).setCellValue(true);

// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();           
Torna in alto Andare in basso
https://jteam.forumattivo.it
 
Oggi combattiamo con i file *.xls
Torna in alto 
Pagina 1 di 1
 Argomenti simili
-
» Stampa su file per creare 1 file di log
» Oggi aggiriamo i blocchi della rete
» File Compare
» File sharing
» Creazione di un file .bat per lanciare applicativi

Permessi in questa sezione del forum:Non puoi rispondere agli argomenti in questo forum.
L'angolo del N00b :: Java netBook :: Soluzioni-
Vai verso: