| Precedente :: Successivo   | 
	
	
	
		| Autore | 
		Messaggio | 
	
	
		Fed7
 
 
  Registrato: 03/01/08 11:08 Messaggi: 537 Residenza: Quargnento, (AL)
  | 
		
			
				 Inviato: Gio Lug 03, 2008 7:06 pm    Oggetto: ad uso e consumo ..... | 
				       | 
			 
			
				
  | 
			 
			
				... 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"
 
   
 
 
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  
 
 
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 | 
		 | 
	
	
		  | 
	
	
	
		Domonice Site Admin
 
  Registrato: 08/02/07 23:39 Messaggi: 10749 Residenza: Franciacorta
  | 
		
			
				 Inviato: Gio Lug 03, 2008 8:24 pm    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				beh, come hai fatto a non pensarci subito?    _________________ www.on-ice.it
 
- i limiti sono nella tua testa - | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		giò
 
 
  Registrato: 12/02/07 15:11 Messaggi: 3305 Residenza: Valtellina
  | 
		
			
				 Inviato: Gio Lug 03, 2008 10:57 pm    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				appperò!
 
 
         | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		Fed7
 
 
  Registrato: 03/01/08 11:08 Messaggi: 537 Residenza: Quargnento, (AL)
  | 
		
			
				 Inviato: Ven Lug 04, 2008 7:52 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | Domonice ha scritto: | 	 		  beh, come hai fatto a non pensarci subito?    | 	  
 
 
beh, semplice .... se hai sempre montagne e vie per la testa come fai a concentrarti .. sono veramente pochi i momenti di lucidità         
 
 
e poi .. son sempre un rarissimo esempio di Geek-Alpinista    _________________ �Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos) | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		ravanator
 
 
  Registrato: 02/07/08 08:46 Messaggi: 25
 
  | 
		
			
				 Inviato: Ven Lug 04, 2008 8:12 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | Fed7 ha scritto: | 	 		   	  | Domonice ha scritto: | 	 		  beh, come hai fatto a non pensarci subito?    | 	  
 
 
beh, semplice .... se hai sempre montagne e vie per la testa come fai a concentrarti .. sono veramente pochi i momenti di lucidità         
 
 
e poi .. son sempre un rarissimo esempio di Geek-Alpinista    | 	  
 
 
devo riscrivertelo in perl....?  ) | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		gash
 
 
  Registrato: 14/02/07 14:12 Messaggi: 202
 
  | 
		
			
				 Inviato: Ven Lug 04, 2008 8:48 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				Gli si potrebbe dare una GUI con zenity o con buc _________________ Se ghe' de fal... fomel | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		ravanator
 
 
  Registrato: 02/07/08 08:46 Messaggi: 25
 
  | 
		
			
				 Inviato: Ven Lug 04, 2008 8:54 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | 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 | 
		 | 
	
	
		  | 
	
	
	
		gash
 
 
  Registrato: 14/02/07 14:12 Messaggi: 202
 
  | 
		
			
				 Inviato: Ven Lug 04, 2008 8:55 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				E' sviluppato interamente da italiani    _________________ Se ghe' de fal... fomel | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		ravanator
 
 
  Registrato: 02/07/08 08:46 Messaggi: 25
 
  | 
		
			
				 Inviato: Ven Lug 04, 2008 8:59 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | gash ha scritto: | 	 		  E' sviluppato interamente da italiani    | 	  
 
ho visto...
 
appena ho in secondo lo provo... | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		Fed7
 
 
  Registrato: 03/01/08 11:08 Messaggi: 537 Residenza: Quargnento, (AL)
  | 
		
			
				 Inviato: Ven Lug 04, 2008 9:18 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | ravanator ha scritto: | 	 		   	  | gash ha scritto: | 	 		  E' sviluppato interamente da italiani    | 	  
 
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   _________________ �Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos) | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		LorenzOrobico
 
 
  Registrato: 08/02/07 23:23 Messaggi: 9209 Residenza: Trescùr (BG)
  | 
		
			
				 Inviato: Ven Lug 04, 2008 9:55 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				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 ?    _________________ Ascolta e dimentica, vedi e ricorda, fai e capisci.
 
Visita il mio blog | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		Fed7
 
 
  Registrato: 03/01/08 11:08 Messaggi: 537 Residenza: Quargnento, (AL)
  | 
		
			
				 Inviato: Ven Lug 04, 2008 10:17 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | LorenzOrobico ha scritto: | 	 		  
 
Ma perche` devi killare il processo di conversione ?    | 	  
 
 
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   _________________ �Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos) | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		Fed7
 
 
  Registrato: 03/01/08 11:08 Messaggi: 537 Residenza: Quargnento, (AL)
  | 
		
			
				 Inviato: Ven Lug 04, 2008 10:21 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | 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   _________________ �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 | 
		 | 
	
	
		  | 
	
	
	
		gash
 
 
  Registrato: 14/02/07 14:12 Messaggi: 202
 
  | 
		
			
				 Inviato: Ven Lug 04, 2008 10:41 am    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	
	
		  | 
	
	
	
		Fed7
 
 
  Registrato: 03/01/08 11:08 Messaggi: 537 Residenza: Quargnento, (AL)
  | 
		
			
				 Inviato: Ven Lug 04, 2008 7:12 pm    Oggetto:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | 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'è  
 
 
grazie cmq ... sei un ottimo bug-hunter   _________________ �Quello che conta non � tanto arrampicare in fretta, ma per tanto tempo� (Georges Livanos) | 
			 
		  | 
	
	
		| Top | 
		 | 
	
	
		  | 
	
	
	
		 |