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

StackOverflow https://stackoverflow.com/questions/202002

  •  03-07-2019
  •  | 
  •  

Вопрос

Мне нужно открыть файл Microsoft Word 2003 и изменить его свойства.Например, смена темы на вкладке "Сводка".
alt text

Это было полезно?

Решение

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

По данным Microsoft:

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

Более подробную информацию и ссылку для скачивания можно найти по адресу 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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top