Что вы можете сделать, это использовать отражение, чтобы отправить тип Enumerable и преобразовать его в DataTable.
private static DataTable ConvertToDataTable(IEnumerable<T> enumerable)
{
var properties = TypeDescriptor.GetProperties(typeof(T));
var table = new DataTable();
foreach (PropertyDescriptor prop in properties)
table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
foreach (var item in enumerable)
{
var row = table.NewRow();
foreach (PropertyDescriptor prop in properties)
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
table.Rows.Add(row);
}
return table;
}
После этого пусть механизм работы с электронными таблицами выполнит свою работу.Преобразуйте его в поток памяти и затем в байт []
Передайте байт [] в FileContentResult