Comment ouvrir un fichier en C # et modifier ses propriétés?
Question
Je dois ouvrir un fichier Microsoft Word 2003 et modifier ses propriétés. Tels que changer le sujet dans l'onglet Résumé.
La solution
Microsoft fournit un petit assemblage très utile appelé DSOFile. En y faisant référence dans votre projet, vous pouvez modifier les propriétés du document Office. Cela ne vous laissera pas nécessairement ouvrir la boîte de dialogue des propriétés du fichier Office réel, mais vous pouvez certainement le simuler.
Selon Microsoft:
Les fichiers Dsofile.dll vous permettent de modifier Propriétés du document Office lorsque vous le faites pas d'Office installé
Vous trouverez plus de détails et un lien de téléchargement à l'adresse http://support.microsoft.com/kb/. 224351
Voici un extrait du code VB (très ancien) que j’avais utilisé il ya très longtemps. Désolé, je n'ai pas converti en C # et sachez que cela fait partie d'une classe, donc il y a des références aux variables d'instance. Néanmoins, il devrait être assez facile à comprendre et à convertir à vos propres besoins:
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
Autres conseils
Je peux penser à deux façons de le faire:
- Utilisez les API Microsoft Office. Vous devra les référencer dans votre projet, et vous aurez besoin du Assemblys d'interopérabilité primaires .
- Convertir le fichier en Word 2003 Format XML et changer cette valeur le document XML. Voici le MSDN documentation sur le document Propriétés: http://msdn.microsoft.com/en-us /library/aa223625(office.11).aspx
Si vous le pouviez, je choisirais la deuxième option, car vous ne devez donc pas dépendre de l'installation de Word sur le système.