// Generates content of customFilePropertiesPart1. private void GenerateCustomFilePropertiesPart1Content(CustomFilePropertiesPart customFilePropertiesPart1) { Op.Properties properties2 = new Op.Properties(); properties2.AddNamespaceDeclaration("vt", "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"); Op.CustomDocumentProperty customDocumentProperty1 = new Op.CustomDocumentProperty() { FormatId = "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", PropertyId = 2, Name = "ContentTypeId" }; Vt.VTLPWSTR vTLPWSTR1 = new Vt.VTLPWSTR(); vTLPWSTR1.Text = "0x010100DA191A7983F9F44A9C60D24B5C4D22D7"; customDocumentProperty1.Append(vTLPWSTR1); properties2.Append(customDocumentProperty1); customFilePropertiesPart1.Properties = properties2; }
private void GenerateCustomFilePropertiesPartContent(CustomFilePropertiesPart customFilePropertiesPart1) { var properties2 = new DocumentFormat.OpenXml.CustomProperties.Properties(); properties2.AddNamespaceDeclaration("vt", "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"); var propertyId = 1; foreach (var p in CustomProperties) { propertyId++; var customDocumentProperty = new CustomDocumentProperty { FormatId = "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", PropertyId = propertyId, Name = p.Name }; if (p.Type == XLCustomPropertyType.Text) { var vTlpwstr1 = new VTLPWSTR {Text = p.GetValue<string>()}; customDocumentProperty.AppendChild(vTlpwstr1); } else if (p.Type == XLCustomPropertyType.Date) { var vTFileTime1 = new VTFileTime { Text = p.GetValue<DateTime>().ToUniversalTime().ToString( "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'") }; customDocumentProperty.AppendChild(vTFileTime1); } else if (p.Type == XLCustomPropertyType.Number) { var vTDouble1 = new VTDouble { Text = p.GetValue<Double>().ToString(CultureInfo.InvariantCulture) }; customDocumentProperty.AppendChild(vTDouble1); } else { var vTBool1 = new VTBool {Text = p.GetValue<Boolean>().ToString().ToLower()}; customDocumentProperty.AppendChild(vTBool1); } properties2.AppendChild(customDocumentProperty); } customFilePropertiesPart1.Properties = properties2; }
public Boolean setCustomProperty(string propertyName, object propertyValue, WordprocessingDocument doc) { // Given a document name, a property name/value, and the property type, // add a custom property to a document. The method returns if it was successful or not var newProp = new CustomDocumentProperty(); // Now that you have handled the parameters, start // working on the document. newProp.FormatId = "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}"; newProp.Name = propertyName; newProp.VTLPWSTR = new VTLPWSTR(propertyValue.ToString()); var customProps = doc.CustomFilePropertiesPart; if (customProps == null) { // No custom properties? Add the part, and the // collection of properties now. customProps = doc.AddCustomFilePropertiesPart(); customProps.Properties = new DocumentFormat.OpenXml.CustomProperties.Properties(); } var props = customProps.Properties; if (props != null) { // This will trigger an exception if the property's Name // property is null, but if that happens, the property is damaged, // and probably should raise an exception. var prop = props.Where(p => ((CustomDocumentProperty)p).Name.Value == propertyName).FirstOrDefault(); // Does the property exist? If so, get the return value, // and then delete the property. if (prop != null) { prop.Remove(); } // Append the new property, and // fix up all the property ID values. // The PropertyId value must start at 2. props.AppendChild(newProp); int pid = 2; foreach (CustomDocumentProperty item in props) { item.PropertyId = pid++; } props.Save(); customProps.Properties.Save(); return true; } return false; }