Как открыть файл на C # и изменить его свойства?

I need to open a Microsoft Word 2003 file and change its file properties. Such as changing the Subject in the Summary Tab.
alt text http://www.jegsworks.com/Lessons/words/report/dialog-fileproperties-summary.gif

3

2 ответы

Microsoft предоставляет очень полезную небольшую сборку под названием DSOFile. Со ссылкой на него в вашем проекте вы можете изменить свойства документа Office. Это не обязательно позволит вам открыть диалоговое окно свойств фактического файла Office, но вы могли бы имитировать его.

По словам Microsoft:

Файлы Dsofile.dll позволяют редактировать   Свойства документа Office при работе   не установлен Office

More details and a download link can be found at http://support.microsoft.com/kb/224351

Вот фрагмент некоторого (очень старого) кода VB, который я использовал много лет назад. К сожалению, я не преобразован в C# и знаю, что это часть класса, поэтому есть ссылки на переменные экземпляра. Тем не менее, это должно быть довольно легко понять и скрыто для ваших собственных потребностей:

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
8
добавлено
Я бы +5, если бы мог .. Отличный ответ.
добавлено автор torial, источник

Я могу думать о 2 способах сделать это:

Я бы пошел со вторым вариантом, если вы можете, потому что таким образом вам не нужно зависеть от того, что Word установлен в системе.

5
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot