Как мне открыть файл на C # и изменить его свойства?
Вопрос
Мне нужно открыть файл Microsoft Word 2003 и изменить его свойства.Например, смена темы на вкладке "Сводка".
Решение
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 способа сделать это:
- Используйте API Microsoft Office.Вы должны будете ссылаться на них в своем проекте, и вам понадобится Основные сборки взаимодействия.
- Преобразуйте файл в формат Word 2003 XML и измените это значение в документе XML.Вот доменное имя MSDN документация к документу свойства:http://msdn.microsoft.com/en-us/library/aa223625 (office.11).aspx
Я бы выбрал второй вариант, если вы можете, потому что таким образом вам не придется зависеть от того, установлен ли Word в системе.