Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Riorganizzare alcune colonne Excel per esportazione in txt

    Salve.
    Mi serve una mano per velocizzare un processo che da Excel mi deve permettere di caricare dei dati in un database su Internet...

    Parto da un foglio Excel che aggiorno periodicamente, di cui devo esportare, immagino passando per un foglio Excel intermedio, soltanto le colonne:
    A: anno
    B: numero progressivo dell'anno A
    D: committente
    E: titolo dell'incarico.

    Mi serve che il file di uscita sia così organizzato per colonne:
    A: committente
    B: titolo dell'incarico
    C: numero progressivo e anno.

    Quindi la colonna C deve contenere le informazioni delle colonne A e B del primo, invertite!
    Possibilmente, inoltre dovrebbero essere separate da un spazio/trattino/spazio...

    Questo secondo foglio Excel dovrebbe aggiornarsi in automatico, o tramite una sorta di comando "Aggiorna", di modo che poi possa esportarlo in txt, con un opportuno separatore di colonne (punto e virgola) e caricarlo sul database.

    E' fattibile o pura fantascienza?

  2. #2
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    E' fattibile o pura fantascienza?
    Se ho capito bene si può risolvere facilmente.

    Ammettiamo che i tuoi dati siano in Foglio1 e che venga utilizzato Foglio2 come foglio di transito, basterà inserire:

    in A1 di Foglio2 la formula =Foglio1!D1
    in B1 di Foglio2 la formula =Foglio1!E1
    in C1 di Foglio2 la formula =Foglio1!B1 & " - " & Foglio1!A1

    Fatto questo devi solo copia-incollare le celle della prima riga del Foglio2 su tutte le righe che ti servono.

    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    Funziona, grazie.

    Devo solo avere cura di stirare le righe in basso quando nel foglio principale aggiungo delle righe, ma visto lo sbattimento risparmiato nel copiare tutto manualmente, direi che va benissimo.

    Mi resta un solo dubbio: su Office 2013 in ufficio ho direttamente una voce Esporta cliccando il logo di Office, ma su Office 2007 come faccio?

  4. #4
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    ma su Office 2007 come faccio?
    Dal logo di Office --> Salva con nome --> Altri formati e poi scegli csv dalla tendina.

    Riguardo al primo problema potresti provare a usare queste formule in sostituzione di quelle che ti ho dato prima:

    in A1 di Foglio2 la formula =se(Foglio1!D1<>"";Foglio1!D1;"")
    in B1 di Foglio2 la formula =se(Foglio1!E1<>"";Foglio1!E1;"")
    in C1 di Foglio2 la formula =se(Foglio1!B1<>"";Foglio1!B1 & " - " & Foglio1!A1;"")

    La differenza è che queste visualizzano qualcosa solo se nella cella di partenza c'è qualcosa, ad esempio in A1 di Foglio2 verrà visualizzato qualcosa solo se in D1 di Foglio1 c'è qualcosa, altrimenti niente (e non zero come le formule precedenti).

    Questo dovrebbe permetterti di copiare le formule una volta per tutte nelle prime 10000 righe (ad esempio) e non pensarci più.

    In questo caso però il problema è che l'esportazione in csv non si limita ai soli dati visualizzati ma esporta ogni volta tutte le 10000 righe ma può darsi che questo non sia un problema se il DB su cui vai a caricare i dati è in grado di gestire la cosa, altrimenti ti resta ancora l'opzione di aprire col blocco note il file csv che contiene le righe vuote da eliminare, posizionarti alla fine dell'ultima riga valorizzata e digitare Shift-Ctrl-Fine e poi Canc. Probabilmente è la soluzione più comoda.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  5. #5
    Forse ho sbagliato qualcosa... Mi salva l'intero file in .csv, e il database non me lo riesce a prendere soltanto il foglio creato apposta.
    Devo mica, ogni volta, selezionare tutte le celle, copiarle su un altro file Excel e salvare quello come .csv?

    Purtroppo non credo mi convenga usare le formule alternative che mi proponi, perché il database, a sua volta esportabile in formato html (e quindi stampabile in pdf), è meglio che non abbia pagine vuote: attualmente sono occupate soltanto circa 700 righe, e ci vorranno lustri prima che si arrivi a 10.000, ammesso che ci si arrivi.

  6. #6
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    Forse ho sbagliato qualcosa... Mi salva l'intero file in .csv, e il database non me lo riesce a prendere soltanto il foglio creato apposta.
    Devo mica, ogni volta, selezionare tutte le celle, copiarle su un altro file Excel e salvare quello come .csv?

    Purtroppo non credo mi convenga usare le formule alternative che mi proponi, perché il database, a sua volta esportabile in formato html (e quindi stampabile in pdf), è meglio che non abbia pagine vuote: attualmente sono occupate soltanto circa 700 righe, e ci vorranno lustri prima che si arrivi a 10.000, ammesso che ci si arrivi.

    Come fa a salvare tutto il file in csv? Quando salvi in csv excel mostra un avviso di impossibilità di salvare fogli multipli quindi come fa a salvare tutti i fogli? E, in ogni caso, se non lo faceva prima non deve farlo neanche adesso, mica le formule possono cambiare il comportamento del salvataggio.
    Per questi due motivi il comportamento che descrivi è incomprensibile e non so proprio che dirti, comunque ... No! Non devi selezionare tutte le celle ecc... devi solo salvare Foglio2 come csv.

    Anch'io credo che il db non debba avere pagine vuote, la speranza espressa nel post precedente era che il db fosse abbastanza intelligente da scartare automaticamente le eventuali pagine vuote ricevute in input.

    Riguardo alle 10000 righe devo essermi espresso male, provo a chiarire meglio, intanto 10000 è solo un esempio, non avevo idea di quante righe ti servono e ho detto un numero a caso, puoi anche farne solo 800 se questo numero copre le tue esigenze e comunque l'idea era di replicare le formule sulle prime 10000/800 righe solo per non dover ogni volta trascinare la selezione e poi, terminata l'esportazione in csv di tutte le 10000/800 righe, eliminare le righe vuote (col comando che ti ho detto) direttamente nel file csv per non mandarle al db.

    In altre parole il mio suggerimento era questo:

    Solo la prima volta:
    - Inserisci le nuove formule nella prima riga, le copi nelle prime 800 righe e salvi il file nel normale formato xlsx (icona del dischetto).

    Tutte le volte che devi inserire nuovi dati o modificare quelli esistenti in Foglio1:
    - Effettui la modifica in Foglio1
    - Salvi tutto il file con l'icona del dischetto (questo serve a non perdere il formato xlsx)
    - Selezioni il Foglio2
    - Salvi come csv
    - Chiudi Excel
    - Apri il file csv col blocco note
    - Ti posizioni alla fine dell'ultima riga contenente dati, cioè subito prima della sfilza di righe vuote
    - Digiti Shift-Ctrl-Fine
    - Digiti Canc
    - Salvi il file (SHIFT + F12)
    - Carichi il file csv sul DB.


    Spero che ora sia più chiaro.
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  7. #7
    Come fa a salvare tutto il file in csv? Quando salvi in csv excel mostra un avviso di impossibilità di salvare fogli multipli quindi come fa a salvare tutti i fogli?
    Non so come faccia, fatto sta che quando salvo mi ritrovo un file .csv in tutto e per tutto uguale al file .xlsx a meno dell'estensione!
    Oggi posso provare con Office 2013.

    Per la faccenda della quantità di righe, ora ho capito meglio, devo solo vedere come il Database leggerà il tutto. In genere ogni aggiornamento comporta l'inserimento di 5-6 righe, generalmente in mezzo a quelle preesistenti.

    Ti aggiorno sugli sviluppi. Grazie intanto.
    Ultima modifica di Gas75; 11-11-2013 a 11:11

  8. #8
    Stamattina ho fatto un po' di prove con più calma e mi sembra che l'equivoco sui fogli multipli nasca dal fatto che excel, dopo aver salvato il Foglio2, resta aperto e continua a visualizzare anche gli altri fogli creando in questo modo una situazione ibrida in cui sembra che un file csv sia composto da più fogli.

    La cosa però non è così e per verificarlo basta chiudere excel e riaprire il file csv che conterrà, correttamente, un solo foglio.

    Anche quest'altra prova è interessante:

    - Apri il file xlsx, seleziona il Foglio2 e salvalo come csv.
    - Ad excel ancora aperto (quindi nella situazione ibrida), seleziona il Foglio1 e clicca sul dischetto.
    - A questo punto chiudi Excel e riapri il csv, vedrai che excel, non potendo salvare entrambi i fogli, ha sostituito il Foglio2 originario col Foglio1 e, per di più, lo ha fatto senza neanche chiedere conferma.

    In sostanza quindi si tratta di un comportamento fuorviante di excel.

    Ora però vorrei tornare al tuo problema e suggerirti una soluzione alternativa, a mio avviso molto più efficace di quella che stiamo esplorando.

    Molti non sanno che un file csv non è altro che un normalissimo file di testo, un txt per capirci, a cui è stata cambiata l'estensione e i cui dati rispettano una semplicissima regola: sono separati da punti e virgola.

    In altre parole, il fatto che i csv vengano aperti con excel è una scelta di microsoft che ha ritenuto che excel fosse il visualizzatore migliore e forse in questo ha anche ragione, excel è effettivamente un ottimo visualizzatore di csv ma non è altrettanto pratico nella loro modifica, per esempio per i problemi che abbiamo visto.

    Visto allora che il trattamento che devi fare si limita a poche righe alla volta mi chiedo se non sia più pratico aprirlo come file di testo (tasto destro --> Apri con) e manipolarlo direttamente col blocco note. Mi sembra molto meglio che trattarlo in excel, per esempio per inserire righe in mezzo basta posizionarsi e dare invio invece di cliccare col destro e scegliere inserisci riga e per salvare basta shift+F12.

    Chiaramente devi prestare attenzione, la prima volta che lo apri col blocco note, a non selezionare la casellina "usa sempre questo programma..." in modo che per la visualizzazione continui ad aprirsi automaticamente excel.

    Valuta tu.
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  9. #9
    Quote Originariamente inviata da NonCeLaFaccio+ Visualizza il messaggio
    Visto allora che il trattamento che devi fare si limita a poche righe alla volta mi chiedo se non sia più pratico aprirlo come file di testo (tasto destro --> Apri con) e manipolarlo direttamente col blocco note. Mi sembra molto meglio che trattarlo in excel, per esempio per inserire righe in mezzo basta posizionarsi e dare invio invece di cliccare col destro e scegliere inserisci riga e per salvare basta shift+F12.
    Sì, ci avevo già pensato... Infatti devo proprio aprire il csv con Blocco Note, copiare tutto il contenuto e incollarlo in un'apposita area di testo sul sito, perché per qualche arcana ragione il csv selezionato da "Sfoglia" non gli piace. Ho già chiesto agli sviluppatori, è un problema risaputo di acquisizione di file diversi da immagini, con relativa soluzione pratica: "Tanto, copia&incolla funziona, no?"

  10. #10
    Cambiando argomento, Gas, che ne pensi di Office 2013?
    Io ho il 2007 col quale mi trovo bene e non sono mai passato al 2010 perché mi è stato sconsigliato da molti (e vedo in firma che anche a te non è piaciuto). E il 2013 com'è? Val la pena di sostituire il 2007?
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

Tag per questa discussione

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.