Come posso aprire un file in C # e modificarne le proprietà?
Domanda
Devo aprire un file di Microsoft Word 2003 e modificarne le proprietà. Come cambiare l'oggetto nella scheda Riepilogo.
Soluzione
Microsoft fornisce un piccolo assembly molto utile chiamato DSOFile. Con riferimento ad esso nel progetto, è possibile modificare le proprietà del documento di Office. Non ti permetterà necessariamente di aprire la finestra di dialogo delle proprietà del file Office, ma potresti sicuramente simularlo.
Secondo Microsoft:
I file Dsofile.dll ti consentono di modificare Proprietà del documento di Office quando lo fai non è installato Office
Ulteriori dettagli e un collegamento per il download sono disponibili all'indirizzo http://support.microsoft.com/kb/ 224351
Ecco un frammento di (molto vecchio) codice VB che ho usato anni fa. Spiacenti, non mi sono convertito in C # e tieni presente che fa parte di una classe, quindi ci sono riferimenti a variabili di istanza. Tuttavia, dovrebbe essere abbastanza facile da capire e coprire le tue esigenze:
Private Sub ProcessOfficeDocument(ByVal fileName As String)
Dim docDSO As New DSOFile.OleDocumentPropertiesClass
Dim docTitle, docModified, docAuthor, docKeywords As String
Try
docDSO.Open(fileName, True)
Dim docSummary As DSOFile.SummaryProperties = docDSO.SummaryProperties
docTitle = docSummary.Title
docAuthor = docSummary.Author
docKeywords = docSummary.Keywords
docModified = CStr(docSummary.DateLastSaved)
If (Not String.IsNullOrEmpty(docTitle)) Then
_Title = docTitle
End If
If (Not String.IsNullOrEmpty(docAuthor)) Then
_Author = docAuthor
End If
If (Not String.IsNullOrEmpty(docModified)) Then
_DateModified = DateTime.Parse(docModified)
End If
Catch ex As Exception
'Do whatever you need to do here...'
Finally
If (Not docDSO Is Nothing) Then
docDSO.Close()
End If
End Try
End Sub
Altri suggerimenti
Posso pensare a 2 modi per farlo:
- Utilizza le API di Microsoft Office. tu dovrà fare riferimento a loro nel tuo progetto e avrai bisogno del Assiemi di interoperabilità primari .
- Converti il ??file in Word 2003 Formato XML e modifica quel valore in il documento XML. Ecco il MSDN documentazione sul documento proprietà: http://msdn.microsoft.com/en-us /library/aa223625(office.11).aspx
Vorrei andare con la seconda opzione se puoi, perché in questo modo non devi dipendere da Word installato sul sistema.