public void GetFormatStringは指定したインデックスの書式を取得できる() { // setup using (FileStream stream = new FileStream(getStylesPath(), FileMode.Open, FileAccess.Read)) { XlsxStyles styles = new XlsxStyles(stream); //expect Assert.AreEqual("General", styles.GetFormatString(0)); Assert.AreEqual("m/d/yy", styles.GetFormatString(1)); Assert.AreEqual("#,##0.0000_ ", styles.GetFormatString(2)); } }
public void GetFormatIdは指定したインデックスの書式IDを取得できる() { // setup using (FileStream stream = new FileStream(getStylesPath(), FileMode.Open, FileAccess.Read)) { XlsxStyles styles = new XlsxStyles(stream); //expect Assert.AreEqual(0, styles.GetFormatId(0)); Assert.AreEqual(14, styles.GetFormatId(1)); Assert.AreEqual(177, styles.GetFormatId(2)); } }
private XlsxStyles ReadStyles(Stream xmlFileStream) { var _Styles = new XlsxStyles(); if (null == xmlFileStream) { return(_Styles); } bool rXlsxNumFmt = false; using (XmlReader reader = XmlReader.Create(xmlFileStream)) { while (reader.Read()) { if (!rXlsxNumFmt && reader.NodeType == XmlNodeType.Element && reader.LocalName == N_numFmts) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Depth == 1) { break; } if (reader.NodeType == XmlNodeType.Element && reader.LocalName == XlsxNumFmt.N_numFmt) { _Styles.NumFmts.Add( new XlsxNumFmt( int.Parse(reader.GetAttribute(XlsxNumFmt.A_numFmtId)), reader.GetAttribute(XlsxNumFmt.A_formatCode) )); } } rXlsxNumFmt = true; } if (reader.NodeType == XmlNodeType.Element && reader.LocalName == N_cellXfs) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Depth == 1) { break; } if (reader.NodeType == XmlNodeType.Element && reader.LocalName == XlsxXf.N_xf) { var xfId = reader.GetAttribute(XlsxXf.A_xfId); var numFmtId = reader.GetAttribute(XlsxXf.A_numFmtId); _Styles.CellXfs.Add( new XlsxXf( xfId == null ? -1 : int.Parse(xfId), numFmtId == null ? -1 : int.Parse(numFmtId), reader.GetAttribute(XlsxXf.A_applyNumberFormat) )); } } break; } } } return(_Styles); }