public void Serialise(Type itemType, object value, XlsxDocumentBuilder document) { // Can't convert IEnumerable<primitive> to IEnumerable<object> var values = (IEnumerable)value; foreach (var val in values) { document.AppendRow(new object[] { val }); } }
public virtual void Serialise(Type itemType, object value, XlsxDocumentBuilder document) { var data = value as IEnumerable <object>; var columnInfo = Resolver.GetExcelColumnInfo(itemType, data); if (columnInfo.Count == 0) { return; } var columns = columnInfo.Keys.ToList(); // Add header row document.AppendRow((from col in columnInfo select col.Header).ToList()); // Output each row of data if (data != null) { foreach (var dataObject in data) { var row = new List <object>(); for (int i = 0; i <= columns.Count - 1; i++) { var cellValue = GetFieldOrPropertyValue(dataObject, columns[i]); var info = columnInfo[i]; row.Add(FormatCellValue(cellValue, info)); } document.AppendRow(row.ToList()); } } // Enforce any attributes on columns. for (int i = 1; i <= columns.Count; i++) { if (!string.IsNullOrEmpty(columnInfo[i - 1].ExcelNumberFormat)) { document.FormatColumn(i, columnInfo[i - 1].ExcelNumberFormat); } } }
public virtual void Serialise(Type itemType, object value, XlsxDocumentBuilder document) { var data = value as IEnumerable<object>; var columnInfo = Resolver.GetExcelColumnInfo(itemType, data); if (columnInfo.Count == 0) return; var columns = columnInfo.Keys.ToList(); // Add header row document.AppendRow((from col in columnInfo select col.Header).ToList()); // Output each row of data if (data != null && data.FirstOrDefault() != null) { foreach (var dataObject in data) { var row = new List<object>(); for (int i = 0; i <= columns.Count - 1; i++) { var cellValue = GetFieldOrPropertyValue(dataObject, columns[i]); var info = columnInfo[i]; row.Add(FormatCellValue(cellValue, info)); } document.AppendRow(row.ToArray()); } } // Enforce any attributes on columns. for (int i = 1; i <= columns.Count; i++) { if (!string.IsNullOrEmpty(columnInfo[i - 1].ExcelNumberFormat)) { document.FormatColumn(i, columnInfo[i - 1].ExcelNumberFormat); } } }
public void Serialise(Type itemType, object value, XlsxDocumentBuilder document) { if (value.GetType().IsAssignableFrom(typeof(ExpandoObject))) { value = new[] { value }; } var data = value as IEnumerable <object>; var first = data.FirstOrDefault(); if (first == null) { return; } var members = GetDynamicMembers(first); if (members.Count() == 0) { return; } // Add member names as headers. document.AppendRow(members); foreach (var item in data) { var propertyValues = GetDynamicPropertyValues(item); var row = new List <object>(); foreach (var member in members) { row.Add(propertyValues[member]); } document.AppendRow(row); } }