Francesco Geri

Il blog di Francesco Geri
posts - 94, comments - 165, trackbacks - 2

Documenti Word: Update del valore di custom properties inserite in Header e Footer

Definendo in un documento Word delle custom properties è poi possibile inserirne i valori nel contenuto del documento.

Il seguente codice può essere utilizzato per aggiornare in automatico le custom properties ed il contenuto del documento:

 

   1:           ' Avvia l'applicazione Word
   2:           Dim oWORD As New Word.Application
   3:           ' Recupera il documento
   4:           Dim oDOC As Word.Document = oWORD.Documents.Open("c:\temp\MyWordDocument.doc")
   5:           ' Aggiorna le custom properties
   6:           For iProp As Integer = 1 To oDOC.CustomDocumentProperties.Count
   7:              If oDOC.CustomDocumentProperties(iProp).Name = "MyProperty" Then
   8:                 oDOC.CustomDocumentProperties(iProp).Value = "MyValue"
   9:                 Exit For
  10:              End If
  11:           Next
  12:           ' Aggiorna il contenuto del documento
  13:           oDOC.Fields.Update()
  14:           ' Chiude salvando il documento
  15:           oDOC.ActiveWindow.Document.Close(True)
  16:           ' Chiude l'applicazione Word
  17:           oWORD.Quit(False)

 

Così facendo, però, viene aggiornato solo il contenuto del documento, ma non header e footer. Per cui se la custom property la si usa nell'header o nel footer il suo valore non viene aggiornato.

In questo caso il codice potrebbe essere il seguente: 

 

   1:           ' Avvia l'applicazione Word
   2:           Dim oWORD As New Word.Application
   3:           ' Recupera il documento
   4:           Dim oDOC As Word.Document = oWORD.Documents.Open("c:\temp\MyWordDocument.doc")
   5:           ' Aggiorna le custom properties
   6:           For iProp As Integer = 1 To oDOC.CustomDocumentProperties.Count
   7:              If oDOC.CustomDocumentProperties(iProp).Name = "MyProperty" Then
   8:                 oDOC.CustomDocumentProperties(iProp).Value = "MyValue"
   9:                 Exit For
  10:              End If
  11:           Next
  12:           ' Aggiorna il contenuto del documento
  13:           oDOC.Fields.Update()
  14:           ' Aggiorna header e footer
  15:           oDOC.ActiveWindow.View.Type = Word.WdViewType.wdPrintView
  16:           oDOC.ActiveWindow.View.SeekView = Word.WdSeekView.wdSeekCurrentPageHeader
  17:           oDOC.ActiveWindow.Selection.WholeStory()
  18:           oDOC.ActiveWindow.Selection.Fields.Update()
  19:           oDOC.ActiveWindow.View.SeekView = Word.WdSeekView.wdSeekCurrentPageFooter
  20:           oDOC.ActiveWindow.Selection.WholeStory()
  21:           oDOC.ActiveWindow.Selection.Fields.Update()
  22:           ' Chiude salvando il documento
  23:           oDOC.ActiveWindow.Document.Close(True)
  24:           ' Chiude l'applicazione Word
  25:           oWORD.Quit(False)

Print | posted on lunedì 17 dicembre 2007 05:30 | Filed Under [ Tips .Net MS Office ]

Powered by:
Powered By Subtext Powered By ASP.NET