/// <summary> /// /// </summary> /// <param name="values"></param> public void WriteRow(object[] values) { Assert.IsNotNull(values); WriteStartRow(); for (var columnIndex = 0; columnIndex < values.Length; columnIndex++) { var value = values[columnIndex]; XmlSpreadsheetDataType type; string xmlValue; if (value == DBNull.Value) { xmlValue = null; type = XmlSpreadsheetDataType.String; } else { var column = _table.Columns[columnIndex]; type = column.DataType; xmlValue = column.Convert(value); } var cell = new XmlSpreadsheetCell(type, xmlValue); cell.StyleId = $"{_tableIndex},{columnIndex}"; cell.Write(XmlWriter); } WriteEndRow(); }
/// <summary> /// /// </summary> /// <param name="table"></param> public void WriteStartTable(XmlSpreadsheetTable table) { Assert.IsNotNull(table); _tableIndex++; _table = table; XmlWriter.WriteStartElement("Worksheet"); XmlWriter.WriteAttributeString("ss:Name", _table.TableName); XmlWriter.WriteStartElement("Table"); var columnIndex = 1; foreach (var column in _table.Columns) { using (XmlWriter.WriteElement("Column")) { XmlWriter.WriteAttributeString("ss:Index", columnIndex.ToString()); if (column.Width != null) { XmlWriter.WriteAttributeString("ss:Width", column.Width); } } columnIndex++; } using (XmlWriter.WriteElement("Row")) { foreach (var column in _table.Columns) { var cell = new XmlSpreadsheetCell(XmlSpreadsheetDataType.String, column.ColumnName) { StyleId = "ColumnHeader" }; cell.Write(XmlWriter); } } }