Ich möchte auf einige integrierte Eigenschaften (wie Autor, Datum der letzten Änderung, etc.) einer geöffneten XML-Word-Dokument-Datei zugreifen. Ich möchte zu diesem Zweck Open Xml SDK2.0 verwenden. Also frage ich mich, ob es irgendeine Klasse oder irgendeine Art gibt, wie ich programmatisch auf diese eingebauten Eigenschaften zugreifen könnte.wie programmgesteuert auf die integrierten Eigenschaften einer geöffneten XML-Worddoc-Datei zugreifen
4
A
Antwort
8
Eine Erklärung der folgenden Methode kann here, aber ziemlich viel finden müssen Sie in den Eigenschaften zu übergeben, die Sie aus der core.xml Datei zu dieser Methode erhalten mögen und es wird den Wert zurück:
public static string WDRetrieveCoreProperty(string docName, string propertyName)
{
// Given a document name and a core property, retrieve the value of the property.
// Note that because this code uses the SelectSingleNode method,
// the search is case sensitive. That is, looking for "Author" is not
// the same as looking for "author".
const string corePropertiesSchema = "http://schemas.openxmlformats.org/package/2006/metadata/core-properties";
const string dcPropertiesSchema = "http://purl.org/dc/elements/1.1/";
const string dcTermsPropertiesSchema = "http://purl.org/dc/terms/";
string propertyValue = string.Empty;
using (WordprocessingDocument wdPackage = WordprocessingDocument.Open(docName, true))
{
// Get the core properties part (core.xml).
CoreFilePropertiesPart corePropertiesPart = wdPackage.CoreFilePropertiesPart;
// Manage namespaces to perform XML XPath queries.
NameTable nt = new NameTable();
XmlNamespaceManager nsManager = new XmlNamespaceManager(nt);
nsManager.AddNamespace("cp", corePropertiesSchema);
nsManager.AddNamespace("dc", dcPropertiesSchema);
nsManager.AddNamespace("dcterms", dcTermsPropertiesSchema);
// Get the properties from the package.
XmlDocument xdoc = new XmlDocument(nt);
// Load the XML in the part into an XmlDocument instance.
xdoc.Load(corePropertiesPart.GetStream());
string searchString = string.Format("//cp:coreProperties/{0}", propertyName);
XmlNode xNode = xdoc.SelectSingleNode(searchString, nsManager);
if (!(xNode == null))
{
propertyValue = xNode.InnerText;
}
}
return propertyValue;
}
+0
danke viel amurra. – stazera
1
Sie können auch die Verpackung API verwenden:
using System.IO.Packaging.Package;
[...]
using (var package = Package.Open(path))
{
package.PackageProperties.Creator = Environment.UserName;
package.PackageProperties.LastModifiedBy = Environment.UserName;
}
, die auch für andere Open XML-Formate wie Powerpoint funktioniert.
+0
gut! Ich habe für xlsx verwendet – elle0087
Verwandte Themen
- 1. Wie programmgesteuert auf die iOS-Systemschrift zugreifen
- 2. Programmgesteuert auf die Webseite in Java zugreifen
- 3. Auf die Aufrufhierarchie von Eclipse programmgesteuert zugreifen
- 4. Google App Engine: Wie kann ich programmgesteuert auf die Eigenschaften meiner Model-Klasse zugreifen?
- 5. javascript: wie auf statische Eigenschaften zugreifen
- 6. Wie programmgesteuert auf Chrome App-Installationsverzeichnis zugreifen?
- 7. Wie programmgesteuert auf den Namen einer Spring Boot-Anwendung zugreifen?
- 8. Eigenschaften programmgesteuert generieren
- 9. Wie kann ich auf die Eigenschaften eines anonymen Objekts zugreifen?
- 10. Programmgesteuert auf SharePoint-Listen und Unterwebsites zugreifen?
- 11. VS2015 Erweiterung programmgesteuert auf erweiterte Speicheroptionen zugreifen
- 12. Wie kann ich von einer Django-Vorlage auf die Eigenschaften einer Viele-zu-Viele-Tabelle zugreifen?
- 13. Programmgesteuert auf den Abschnitt <compilation /> einer web.config zugreifen?
- 14. Programmgesteuert auf die App-Kontingentdetails von Google App Engine zugreifen
- 15. Programmgesteuert auf Google Chrome-Lesezeichen zugreifen
- 16. Programmgesteuert bearbeiten Sie die Eigenschaften von build.prop auf Android
- 17. Wie kann ich auf ein Fensterobjekt eines neu geöffneten Tabs zugreifen? [in einer Firefox-Erweiterung]
- 18. JSF und Primefaces Versionsnummern programmgesteuert zugreifen
- 19. Wie kann ich programmgesteuert über JMX auf Speicherbelegung zugreifen?
- 20. Programmgesteuert auf alle Benutzer zugreifen Startmenü
- 21. Können Sie programmgesteuert auf die Firebug-Konsolenausgabe zugreifen?
- 22. Wie programmgesteuert auf ein DataGrid-Zeile-Details-Steuerelement zugreifen
- 23. Zugriff auf in Logback programmierte Eigenschaften programmgesteuert
- 24. kann nicht auf req.user Eigenschaften zugreifen
- 25. Wie kann man auf die Eigenschaften einer Datei-Upload-Schaltfläche zugreifen?
- 26. Wie programmgesteuert auf die Bitlocker-Wiederherstellungsregisterkarte zugreifen, um Wiederherstellungskennwörter zu sichern
- 27. Zugreifen auf Objekte Eigenschaften mit Variablen JS
- 28. PHP - Wie zu erweitern und auf Eltern Konstruktor Eigenschaften zugreifen
- 29. Wie kann ich programmgesteuert auf einen IPTV-Server zugreifen?
- 30. Wie kann ich programmgesteuert auf eine Vorlage zugreifen?
Schauen Sie sich diesen Code an, um ein paar nette Tipps zu erhalten: [https://searchcode.com/codesearch/view/10033886/](https://searchcode.com/codesearch/view/10033886/). – AnorZaken