diff --git a/OpenXmlFormats/Wordprocessing/Styles.cs b/OpenXmlFormats/Wordprocessing/Styles.cs
index 6df1cb41d..8a46dac45 100644
--- a/OpenXmlFormats/Wordprocessing/Styles.cs
+++ b/OpenXmlFormats/Wordprocessing/Styles.cs
@@ -140,6 +140,11 @@ public CT_DocDefaults AddNewDocDefaults()
this.docDefaultsField = new CT_DocDefaults();
return this.docDefaultsField;
}
+
+ public void RemoveStyle(int pos)
+ {
+ this.styleField.RemoveAt(pos);
+ }
}
diff --git a/ooxml/XWPF/Usermodel/XWPFStyles.cs b/ooxml/XWPF/Usermodel/XWPFStyles.cs
index ebb2876a0..1225598bb 100644
--- a/ooxml/XWPF/Usermodel/XWPFStyles.cs
+++ b/ooxml/XWPF/Usermodel/XWPFStyles.cs
@@ -164,7 +164,27 @@ public void SetStyles(CT_Styles styles)
}
}
+ public CT_Styles GetCTStyles()
+ {
+ return ctStyles;
+ }
+
+ ///
+ /// remove the specified style if present
+ ///
+ ///
+ ///
+ public bool RemoveStyle(int pos)
+ {
+ if(pos >= 0 && pos < NumberOfStyles)
+ {
+ listStyle.RemoveAt(pos);
+ ctStyles.RemoveStyle(pos);
+ return true;
+ }
+ return false;
+ }
/**
* Checks whether style with styleID exist
* @param styleID styleID of the Style in the style-Document
@@ -346,6 +366,11 @@ public XWPFStyle GetStyleWithSameName(XWPFStyle style)
}
+ public List GetStyles()
+ {
+ return listStyle;
+ }
+
/**
* Get the default style which applies text runs in the document
*/
diff --git a/testcases/ooxml/XWPF/UserModel/TestXWPFStyles.cs b/testcases/ooxml/XWPF/UserModel/TestXWPFStyles.cs
index 95bbdccc5..7bd0f712e 100644
--- a/testcases/ooxml/XWPF/UserModel/TestXWPFStyles.cs
+++ b/testcases/ooxml/XWPF/UserModel/TestXWPFStyles.cs
@@ -236,5 +236,20 @@ public void TestMissingStyleId()
doc.Close();
}
+ [Test]
+ public void TestRemoveStyle()
+ {
+ using(XWPFDocument sampleDoc = XWPFTestDataSamples.OpenSampleDocument("Styles.docx"))
+ {
+ XWPFStyles styles = sampleDoc.GetStyles();
+ ClassicAssert.AreEqual(12, styles.GetStyles().Count);
+ XWPFStyle removedStyle = styles.GetStyle("Standard");
+ styles.RemoveStyle(styles.GetStyles().IndexOf(removedStyle));
+
+ XWPFDocument docIn = XWPFTestDataSamples.WriteOutAndReadBack(sampleDoc);
+ ClassicAssert.AreEqual(11, docIn.GetStyles().GetStyles().Count);
+ ClassicAssert.IsNull(docIn.GetStyles().GetStyle("Standard"));
+ }
+}
}
}