Indice del forum
Home Gallery
Report
Itinerari
AlbumAlbum    FAQFAQ     CercaCerca     GruppiGruppi    RegistratiRegistrati     Lista utentiLista utenti   ProfiloProfilo     Messaggi privatiMessaggi privati     Log inLog in  
ad uso e consumo .....

 
Nuovo argomento   Rispondi    Indice del forum -> Il Caffe`
Precedente :: Successivo  
Autore Messaggio
Fed7



Registrato: 03/01/08 11:08
Messaggi: 537
Residenza: Quargnento, (AL)

MessaggioInviato: Gio Lug 03, 2008 7:06 pm    Oggetto: ad uso e consumo ..... Rispondi citando

... dei geek ... dei prof. ICT ... dei semplici smanettoni ....

sul mio blog .. ben poco aggiornato .. l'ho intitolato " .. sul ns dizionario non esiste la parola impossibile"

Problema: un cliente, a cui hai preparato (sei mesi fa) un modello OOo (calc) per le fatture, ti chiede: "ma sarebbe possibile avere una prima nota?"
Con aria sboronica dici: "ma certo ... quante fatture hai fatto?"
Cliente: "... 170 circa"
Shocked

Ieri sera tra le 19 e le 21 cerco .. leggo .. spulcio .. niente!!
Sembra che con OOo non ci sia modo ... di estrapolare alcuni dati da enne file e portarli in uno solo ... in modo automatico!!
A quanto sembra nemmeno in Excel Sad

Gira che ti rigira finisco per incappare in questa utility: JODConverter!
È in java ... e in pratica converte tutto in tutto.
Capisco che la mia unica strada è il bash script

Quindi per tutti quelli che usano GNU/Linux ecco:
Codice:

#!/bin/sh
# Script Bash by F3d7
#
# Prima nota: lo scipt converte i file ODS e/o XLS in CSV
# estrae da questi il numero fattura, la data, il nome e l'importo
# li assembla in un nuovo file CSV pronto per CALC
#
# Release 0.0.2
# del 3/7/2008
#
# Enjoy!!!!!!!!!
#
#
# elimino gli spazi dei file
echo "##### Prima Nota 1.0 ####"
echo "by F3d7"
#
echo "Rimuovo gli spazi"
percorso=$PWD
echo "Nome cartella?"
read cartella
cd $percorso"/"$cartella
for nomefile in *
do
   mv "$nomefile" $(echo "$nomefile" | tr " " "_")
done
#
echo "Fatto!! Ho rimosso gli spazi dai nomi dei file ;)"
# converto i file xls e/o ods in csv
echo "I file sono XLS o ODS? Digita xls o ods!!!"
read formato
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard& #lancia OOo in background
java -jar /home/fedsette/Download/jodconverter-2.2.1/lib/jodconverter-cli-2.2.1.jar -f csv *.$formato #converte tutti i file in csv
# kill del processo che converte in CSV
var=`ps ax | grep port=8100 | grep -v grep | grep -v etc | awk '{print $1;}'`
kill $var
#
mkdir tmp
mv *.csv ./tmp/
cd tmp
# estraggo le righe che mi interessano
for nomefile2 in *
do
   riga_numero=`sed -n '5p;5q' "$nomefile2"` # con sed estraggo la riga
   riga_data=`sed -n '9p;9q' "$nomefile2"`
   riga_nome=`sed -n '13p;13q' "$nomefile2"`
   riga_importo=`sed -n '38p;38q' "$nomefile2"`
   #
   # estraggo i valori
   #
   numero_tmp=`expr substr "$riga_numero" 44 10`
   data_tmp=`expr substr "$riga_data" 39 10`                           
   nome_tmp=`expr substr "$riga_nome" 16 25`                           
   importo_tmp=`expr substr "$riga_importo" 22 15`
   #
   # rimuovo virgolette e altro
   #
   numero=`echo ${numero_tmp%'"'*','}`
   data=`echo ${data_tmp%'"'*','}` #rimuove virgolette e virgola dal fondo
   nome=`echo ${nome_tmp%'"'*','}`
   importo_pre=`echo ${importo_tmp%'"'*''}`   
#soluzione due per rimuovere le virgolette
   importo=`echo ${importo_pre#''*'"'}`                             
   # esporto i risultati solo per test   
   echo $numero
   echo $data
   echo $nome
   echo $importo
   riga=$numero';'$data';'$nome';'$importo
   echo $riga >> prima_nota.csv
done
echo "File CSV generato"
# apro in OOo
soffice prima_nota.csv
#
#
# End!!!!!


ovviamente i riferimenti di riga e colonna vanno customizzati ...
_________________
�Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos)
Top
Profilo Invia messaggio privato HomePage MSN
Domonice
Site Admin


Registrato: 08/02/07 23:39
Messaggi: 10747
Residenza: Franciacorta

MessaggioInviato: Gio Lug 03, 2008 8:24 pm    Oggetto: Rispondi citando

beh, come hai fatto a non pensarci subito? Rolling Eyes
_________________
www.on-ice.it
- i limiti sono nella tua testa -
Top
Profilo Invia messaggio privato HomePage
giò



Registrato: 12/02/07 15:11
Messaggi: 3305
Residenza: Valtellina

MessaggioInviato: Gio Lug 03, 2008 10:57 pm    Oggetto: Rispondi citando

appperò!

Shocked Shocked Shocked
Top
Profilo Invia messaggio privato
Fed7



Registrato: 03/01/08 11:08
Messaggi: 537
Residenza: Quargnento, (AL)

MessaggioInviato: Ven Lug 04, 2008 7:52 am    Oggetto: Rispondi citando

Domonice ha scritto:
beh, come hai fatto a non pensarci subito? Rolling Eyes


beh, semplice .... se hai sempre montagne e vie per la testa come fai a concentrarti .. sono veramente pochi i momenti di lucidità Laughing Laughing Laughing

e poi .. son sempre un rarissimo esempio di Geek-Alpinista Cool
_________________
�Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos)
Top
Profilo Invia messaggio privato HomePage MSN
ravanator



Registrato: 02/07/08 08:46
Messaggi: 25

MessaggioInviato: Ven Lug 04, 2008 8:12 am    Oggetto: Rispondi citando

Fed7 ha scritto:
Domonice ha scritto:
beh, come hai fatto a non pensarci subito? Rolling Eyes


beh, semplice .... se hai sempre montagne e vie per la testa come fai a concentrarti .. sono veramente pochi i momenti di lucidità Laughing Laughing Laughing

e poi .. son sempre un rarissimo esempio di Geek-Alpinista Cool


devo riscrivertelo in perl....? Wink)
Top
Profilo Invia messaggio privato
gash



Registrato: 14/02/07 14:12
Messaggi: 202

MessaggioInviato: Ven Lug 04, 2008 8:48 am    Oggetto: Rispondi citando

Gli si potrebbe dare una GUI con zenity o con buc
_________________
Se ghe' de fal... fomel
Top
Profilo Invia messaggio privato
ravanator



Registrato: 02/07/08 08:46
Messaggi: 25

MessaggioInviato: Ven Lug 04, 2008 8:54 am    Oggetto: Rispondi citando

gash ha scritto:
Gli si potrebbe dare una GUI con zenity o con buc


ficus buc, non lo conoscevo...se non fosse che ho tutte macchine in init 3 ...
Top
Profilo Invia messaggio privato
gash



Registrato: 14/02/07 14:12
Messaggi: 202

MessaggioInviato: Ven Lug 04, 2008 8:55 am    Oggetto: Rispondi citando

E' sviluppato interamente da italiani Wink
_________________
Se ghe' de fal... fomel
Top
Profilo Invia messaggio privato
ravanator



Registrato: 02/07/08 08:46
Messaggi: 25

MessaggioInviato: Ven Lug 04, 2008 8:59 am    Oggetto: Rispondi citando

gash ha scritto:
E' sviluppato interamente da italiani Wink

ho visto...
appena ho in secondo lo provo...
Top
Profilo Invia messaggio privato
Fed7



Registrato: 03/01/08 11:08
Messaggi: 537
Residenza: Quargnento, (AL)

MessaggioInviato: Ven Lug 04, 2008 9:18 am    Oggetto: Rispondi citando

ravanator ha scritto:
gash ha scritto:
E' sviluppato interamente da italiani Wink

ho visto...
appena ho in secondo lo provo...


io lo sto provando ... negli ultimi mesi ho trascurato un po' i forum *nix a favore di quelli di montagna .. e così mi era sfuggito Sad
_________________
�Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos)
Top
Profilo Invia messaggio privato HomePage MSN
LorenzOrobico



Registrato: 08/02/07 23:23
Messaggi: 9209
Residenza: Trescùr (BG)

MessaggioInviato: Ven Lug 04, 2008 9:55 am    Oggetto: Rispondi citando

Interessante JOD !
Potresti crearti anche una classe Java che fa tutto il lavoro utilizzando le API di JOD.
Ci spendi un po' di tempo, ma un domani e` un pochino piu` riutilizzabile.

Ma perche` devi killare il processo di conversione ? Rolling Eyes
_________________
Ascolta e dimentica, vedi e ricorda, fai e capisci.
Visita il mio blog
Top
Profilo Invia messaggio privato Invia e-mail HomePage
Fed7



Registrato: 03/01/08 11:08
Messaggi: 537
Residenza: Quargnento, (AL)

MessaggioInviato: Ven Lug 04, 2008 10:17 am    Oggetto: Rispondi citando

LorenzOrobico ha scritto:

Ma perche` devi killare il processo di conversione ? Rolling Eyes


xchè mi tiene impegnato un tty e non permette il proseguo ....

certo .. potrei esportarlo in un'altra tty ... ma di prima mi è venuto bene killarlo Wink
_________________
�Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos)
Top
Profilo Invia messaggio privato HomePage MSN
Fed7



Registrato: 03/01/08 11:08
Messaggi: 537
Residenza: Quargnento, (AL)

MessaggioInviato: Ven Lug 04, 2008 10:21 am    Oggetto: Rispondi citando

gash ha scritto:
Gli si potrebbe dare una GUI con zenity o con buc


bello BUC ... intuitivo ... un pelo limitato .. ho subito trovato qualche bug ... mangia un po' di ram (il mio script ne consuma praticamente zero!!) ... però non ho resistito .. ed al primo colpo .. ecco:


ecco il codice mc:
Codice:

<?xml version="1.0"?>   
 <config>
   <tab>
     <title>echo "Genera Prima Nota 1.0"</title>
   </tab>
      <label>
                echo "Seleziona il percorso"
           </label>
      <file var="percorso" mode="dir" filter="">
         </file>
      <label>
                echo "Seleziona il tipo di file"
           </label>
      <combobox var="formato">
                echo "xls"
                echo "ods"
                </combobox>
      <label>
                echo "Clicca su AVVIA per effettuare la conversione"
           </label>
      <button title="AVVIA">
      direct=echo $PWD
      sh primanota.sh $percorso $formato
      </button>
  </config>


il codice di primanota.sh:
Codice:

#!/bin/sh
# Script Bash by F3d7
#
# Prima nota: lo scipt converte i file ODS e/o XLS in CSV
# estrae da questi il numero fattura, la data, il nome e l'importo
# li assembla in un nuovo file CSV pronto per CALC
#
# Release 1.0 with BUC
# del 4/7/2008
#
# Enjoy!!!!!!!!!
         cd $1
         for nomefile in *
         do
         mv "$nomefile" $(echo "$nomefile" | tr " " "_")
         done
         soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard&
         java -jar /home/fedsette/Download/jodconverter-2.2.1/lib/jodconverter-cli-2.2.1.jar -f csv *.$2
         processo=`ps ax | grep port=8100 | grep -v grep | grep -v etc | awk '{print $1;}'`
         kill $processo

         mkdir tmp
         mv *.csv ./tmp/
         cd tmp
         for nomefile2 in *
         do
         riga_numero=`sed -n '5p;5q' "$nomefile2"`
         riga_data=`sed -n '9p;9q' "$nomefile2"`
         riga_nome=`sed -n '13p;13q' "$nomefile2"`
         riga_importo=`sed -n '38p;38q' "$nomefile2"`
         numero_tmp=`expr substr "$riga_numero" 44 10`
         data_tmp=`expr substr "$riga_data" 39 10`
         nome_tmp=`expr substr "$riga_nome" 16 25`
         nome_tmp=`expr substr "$riga_nome" 16 25`
         importo_tmp=`expr substr "$riga_importo" 22 15`
         numero=`echo ${numero_tmp%'"'*','}`
         data=`echo ${data_tmp%'"'*','}`
         nome=`echo ${nome_tmp%'"'*','}`
         importo_pre=`echo ${importo_tmp%'"'*''}`   
         importo=`echo ${importo_pre#''*'"'}`                             
         riga=$numero';'$data';'$nome';'$importo
         echo $riga >> prima_nota.csv
         done
         soffice prima_nota.csv


come detto ... piuttosto banale ... purtroppo ... oltre un certo numero di linee .. va in palla .. così ho ovviato appoggiandomi ad un bash ext a cui ho dato in pasto le variabili di buc Wink
_________________
�Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos)


L'ultima modifica di Fed7 il Mar Lug 08, 2008 11:26 am, modificato 1 volta
Top
Profilo Invia messaggio privato HomePage MSN
gash



Registrato: 14/02/07 14:12
Messaggi: 202

MessaggioInviato: Ven Lug 04, 2008 10:41 am    Oggetto: Rispondi citando

C'è una doppia riga credo inutile o sbaglio
Codice:
         nome_tmp=`expr substr "$riga_nome" 16 25`
         nome_tmp=`expr substr "$riga_nome" 16 25`

_________________
Se ghe' de fal... fomel
Top
Profilo Invia messaggio privato
Fed7



Registrato: 03/01/08 11:08
Messaggi: 537
Residenza: Quargnento, (AL)

MessaggioInviato: Ven Lug 04, 2008 7:12 pm    Oggetto: Rispondi citando

gash ha scritto:
C'è una doppia riga credo inutile o sbaglio
Codice:
         nome_tmp=`expr substr "$riga_nome" 16 25`
         nome_tmp=`expr substr "$riga_nome" 16 25`


nel postare sul forum ho sbagliato .. ma nell'originale non c'è Wink

grazie cmq ... sei un ottimo bug-hunter Wink
_________________
�Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos)
Top
Profilo Invia messaggio privato HomePage MSN
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Il Caffe` Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi





Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it



utenti collegati