Esportare una vista lotus in excel

In questo articolo spiego come esportare in un foglio excel tutti i documenti contenuti in una vista di un database lotus utilizzando la libreria Apache POI.
E’ un esempio molto semplice che esporta la stringa di ogni colonna della vista per ogni documento ma è possibile aggiungere altre funzionalità come la formattazione del contenuto della cella o altri aspetti di excel.

  1. scarica l’ultima release di Apache POI
  2. crea una nuova script library java e importa come Archive il file jar principale scaricato nel punto precedente, nel mio caso poi-3.8-20120326.jar
  3. crea un nuovo agente java chiamato “Esporta in Excel” con Trigger “Action menu selection” e Target “None”, importa la script library del punto precedente e aggiungi il seguente codice
  4. sostituisci [a full path to excel file] con il percorso al file excel e [the name of the view you export] con il nome della vista da cui si lancerà questo agente

  5. apri la vista che hai inserito nel punto precedente e lancia l’agente; come risultato dovrebbe aprirsi un foglio excel con i valori delle colonne dei documenti della vista (testato su Windows 7 e Lotus 8.5.x)

Alcune considerazioni:

  • il percorso al file excel e il nome della vista lotus sono assegnate come “final String” ma è possibile passarle all’agente java come parametri (vedi l’articolo Passare ad una agente java informazioni legate a oggetti UI)
  • nel codice uso il metodo getColumnValues della classe ViewEntry, che restituisce un oggetto Vector contenente i valori delle colonne ma tieni presente che entry.getColumnValues().elementAt(…) restituisce null per colonne calcolate con funzioni UI (@IsExpandable, @DocNumber, etc.) e per colonne valorizzate a una costante
  • nel caso di icone entry.getColumnValues().elementAt(…) non copia l’immagine ma il corrispondente valore numerico che se è una costante non è neppure mostrato come appena scritto nel punto precedente
  • per le colonne di tipo risposta getColumnValues calcola il valore anche per i documenti principali
  • nel caso di colonne nascoste entry.getColumnValues().elementAt(…) restituisce un valore che l’utente non vede nella vista lotus e che quindi non si aspetta venga esportato in excel

Alla luce di queste considerazioni i valori delle colonne sono copiati in celle excel solo se verificano i 2 “if”:

Come già scritto questo è solo un esempio molto semplice, in situazioni reali probabilmente vorrai formattare excel (fonts, colori, bordi, etc.) e puoi usare le varie classi e metodi messi a disposizione da Apache POI.
Con l’istruzione entry.getColumnValues().elementAt(…).getClass().getName() (non presente nell’esempio) puoi sapere se l’oggetto restituito da entry.getColumnValues().elementAt(…) è di tipo String, Double o DateTime e quindi puoi eseguire formattazioni mirate per un certo tipo di dati, ad esempio, puoi formattare tutte le date per una certa località.

Una risposta a “Esportare una vista lotus in excel”

  1. Hi ,
    I am new to java.. can you please help me in how to do steps 2 and 3 (import the script library of the previous step ) and my domino client version is 8.5.3

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.