Util.ToSpreadsheet() - add support for dynamic types and DataRows
Since dynamic types can be dumped perfectly fine, would it be possible to add support for these cases:
Example 1:
Util.ToSpreadsheet(ExecuteQueryDynamic("SELECT * FROM sys.tables")).Open();
Current result 1:

Example 2:
var dt = new DataTable();
dt.Columns.Add("Foo");
dt.Columns.Add("Bar");
dt.Rows.Add(dt.NewRow());
dt.Rows.Add(dt.NewRow());
Util.ToSpreadsheet(dt.Rows.Cast<DataRow>()).Open();
Current result 2:

Example 3:
var obj = new ExpandoObject();
((IDictionary<string, object>)obj)["Foo"] = "Bar";
var list = new List<dynamic>() { obj };
Util.ToSpreadsheet(list).Open();
Current result 3:

Workaround to get the actual data with column names: Dump(true) then export to Excel via grid.
Best Answer
-
Thanks for the samples. These scenarios should all now be supported in 9.9.3.
Answers
-
Can confirm it's working! (all presented cases). Thank you very much Joe!
Util.ToSpreadsheet(ExecuteQueryDynamic("SELECT * FROM sys.tables")).Open();
-
Another scenario:
Util.ToSpreadsheet(Enumerable.Range(0, 10).Select(i => Util.HighlightIf(i % 2 == 0, new { i, j = i * 2 }))).Open();Current output:

Beta:

Expected output:

(Note that 'Open in Excel) from datagrid works, but does not highlight the rows)
