+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

[Windows Form] Unire piu' file Word e salvarli in un unico file

  1. #1
    winningatrox non  in linea Novello
    Buon pomeriggio a tutti , ho realizzato un progetto in VB.NET (Windows From) che genera dei file word (uno per ogni singola persona con dentro dati anagrafici) e li salva in una cartella specifica :

    Esempio:

    001.doc
    002.doc
    003.doc
    004.doc

    *la cartella conterra' n file word , nell'esempio ne ho creati 4

    fino a qua tutto va bene

    Ora pero' mi servirebbe una funzione che effettui il merge di tutti i file word presenti in quella cartella e salvare il tutto in un unico file word di nome Anagrafica_Personale.doc

    In poche parole nel file Anagrafica_Personale.doc dovro' trovare tutte e quattro schede anagrafiche (001.doc,002.doc,003.doc,004.doc) per pagina (interruzione di pagina) e in ordine dal 001.doc come prima pagina e cosi' via fino ad arrivare all'ultima la 004.doc

    Penso di aver detto tutto e spero di essere stato abbastanza chiaro nello spiegare la problematicha in cui mi trovo.

    Grazie

  2. #2
    HopeFirst non  in linea Scolaretto
    Hai effettuato una ricerca su internet, prima di postare, ci sono parecchi esempi per unire i files una volta divisi. Inoltre penso che dovresti utilizzare il metodo inverso di ci che hai fatto fino ad adesso.

  3. #3
    winningatrox non  in linea Novello
    Quote Originariamente inviato da HopeFirst Visualizza il messaggio
    Hai effettuato una ricerca su internet, prima di postare, ci sono parecchi esempi per unire i files una volta divisi. Inoltre penso che dovresti utilizzare il metodo inverso di ci che hai fatto fino ad adesso.
    Speravo in una risposta pu' tecnica... di certo non aprivo un Thread .

    I file word si creano utilizzando un modello word con campi modulo & Bokmark ".Documents.Open(filename)" e riempiti con una SELLECT ".CommandTex" e successivamente associazione del dato con bookmark :

    .ActiveDocument.Bookmarks.Item("Cognome").Select()
    .Selection.Text = MyReader.GetString(1)

    Salvataggio del documento

    Questa procedura si ripete per n volte , in base al numero di personale presente in una determinata area

    Il creare file singolarmente stata una scelta dovuta dopo interviste ad utenti finali che utilizzeranno il prodotto e con successiva analisi del sistema .

    Ora mi manca soltanto la funzione che effettui il merge di tutti i file word presenti in quella cartella e salvare il tutto in un unico file word di nome Anagrafica_Personale.doc

    Tu hai qualche idea che possa risolvere questo problema ??

    Grazie

  4. #4
    L'avatar di aurum81
    aurum81 non  in linea Scolaretto
    Ciao,
    google risponde a tutto o quasi...
    Dai un'occhiata qui

  5. #5
    HopeFirst non  in linea Scolaretto
    Bhe stessa cosa consigliata da me.... ma la ricerca te l'ha fatta @aurum81

    Risposta pi tecnica cosa significa? postare il codice per:

    Ora mi manca soltanto la funzione che effettui il merge di tutti i file word presenti in quella cartella e salvare il tutto in un unico file word di nome Anagrafica_Personale.doc

  6. #6
    winningatrox non  in linea Novello
    Ho dovuto fare delle modifiche al Code Snippets contrassegnate di colore verde :

    - Mancavano due dichiarazioni
    Dim dirInfo As DirectoryInfo = New DirectoryInfo(fileDirectory) ' mancano nel codice
    Dim fiArr As New Microsoft.VisualBasic.Collection() ' mancano del codice


    - Aggiunto objWord.Selection.InsertBreak() per inserire l' interruzione di pagina ad ogni documento
    word inserito in quanto i documenti word si aggiungevano in coda senza distiguere il tutto pagina per pagina.
    Quindi dopo il merge di 10 file word (10 schede anagrafiche) mi trovavo il file Anagrafica_Personale.doc di 6 pagine con e 10 file word. (scusate il gioco di parole)

    Tutto funziona alla perfezione , pero' .. Perooooo' avrei l'esigenza di eliminare lo spazio prima dell'interruzione di pagina (osservare figura - cerciato di rosso)



    come posso fare ???

    Grazie

    
    'MergeDocs()
            '== Declare variables
            Dim fileArray As New ArrayList
            Dim intCount As Integer = 0
    
            Dim dirInfo As DirectoryInfo = New DirectoryInfo(fileDirectory) ' mancano nel codice
            Dim fiArr As New Microsoft.VisualBasic.Collection() ' mancano del codice
    
            '== Create an object of WORD.
    
            'Dim objWord As Object
            'objWord = CreateObject("Word.Application") ' 
            Dim objWord As New Microsoft.Office.Interop.Word.Application
    
            '== Loop through the collection of documents and add to main word document 
    
            'Directory.GetFiles(fileDirectory, "*.doc")
            For Each fi As System.IO.FileInfo In dirInfo.GetFiles("*.doc") '  dirInfo : is the directory where all the 
    
    separate docs are saved
    
                If Not fileArray.Contains(fi.FullName) Then ' Check if document is not already added.
                    If intCount = 0 Then
                        objWord.Documents.Add(fi.FullName) '  for the first document to be added use Documents.Add method
                    Else
                        objWord.Selection.InsertBreak()
                        objWord.Selection.InsertFile(FileName:=fi.FullName, Range:="", ConfirmConversions:=False, 
    
    Link:=False, Attachment:=False) ' next time onwards use InsertFile method
                    End If
    
                    objWord.Selection.EndKey(Unit:=6) ' set the control \ cursor to the end of the document to insert next 
    
    in the new page
                    intCount += 1 '  increment count by 1
                    fiArr.Add(fi.FullName) ' add the merged document to the collection
    
                End If
    
            Next
    
            '== Delete all separate documents from folder after merge
    
            'For Each fi As System.IO.FileInfo In dirInfo.GetFiles("*.doc")
            '    fi.Delete()
            'Next
    
            '== Make the main document visible
    
            If Not objWord.Visible Then
                objWord.Visible = True
            End If
    
    Ultima modifica di AntonioG; 16-10-2015 08:04 

  7. #7
    L'avatar di sistemista
    sistemista non  in linea Topo di biblioteca
    Ma leggere il regolamento no?il codice deve essere messo negli apposti TAG.
    ℹ️ Leggi di pi su sistemista ...

  8. #8
    winningatrox non  in linea Novello
    Quote Originariamente inviato da sistemista Visualizza il messaggio
    Ma leggere il regolamento no?il codice deve essere messo negli apposti TAG.
    Lo so per scrivendo col cellulare non potevo utilizzare i tag code o xcode. Appena avro' la possibilita' riscrivo il tutto con i tag
    Comunque chiedo scusa. Grazie

  9. #9
    heidiAD non  in linea Novello
    Ciao a tutti da un p che cerco questa soluzione. Non so perch ma non mi gira il programma...forse sbaglio a mettere la file directory in ????

    Dim dirInfo As DirectoryInfo = New DirectoryInfo(fileDirectory)

  10. #10
    winningatrox non  in linea Novello
    Quote Originariamente inviato da heidiAD Visualizza il messaggio
    Ciao a tutti da un p che cerco questa soluzione. Non so perch ma non mi gira il programma...forse sbaglio a mettere la file directory in ????

    Dim dirInfo As DirectoryInfo = New DirectoryInfo(fileDirectory)
    Ciao , metti qui il codice negli apposti TAG

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Unire pi file di Word contenenti codice VBA
    Da almozzi nel forum Microsoft Word
    Risposte: 0
    Ultimo Post: 28-03-2012, 12:21
  2. Unire report e creare un unico file
    Da edirama nel forum Microsoft Access
    Risposte: 0
    Ultimo Post: 22-11-2011, 11:24
  3. Risposte: 0
    Ultimo Post: 20-06-2011, 12:04
  4. Access - esportazione report in unico file word
    Da edirama nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 17-12-2008, 21:31
  5. [Excel]Unire due file in uno unico, formato Pdf
    Da massi013 nel forum Microsoft Excel
    Risposte: 8
    Ultimo Post: 13-12-2007, 18:45