| 

.NET C# Java Javascript Exception

4
Hallo,

habe ein Webhelper.Webgrid (ASP.Net Razor) gestaltet und mit Daten gefüllt. Nun soll dieses (per Link) nach Excel exportiert. Auf dem Webserver ist kein Excel installiert. Wie kann ich das (als Anfänger) machen?
News:
15.03.2011
Gast
41 2
4 Antworten
2
Mal abgesehen davon, dass ich die Dateien, die mit dem Snippet generiert werden, (mit OpenOffice) nicht geöffnet bekomme, lassen sich Objekte jeden beliebigen Typs mit ein paar Extension Methods auch in eine DataTable umwandeln.

DataTableExtensions.cs

public static class DataTableExtensions
{
public static void Load<T>(this DataTable dataTable, IEnumerable<T> collection)
{
foreach (var property in typeof(T).GetProperties())
{
dataTable.Columns.Add(property.Name);
}

foreach (var item in collection)
{
var row = dataTable.NewRow();
row.Load(item);
dataTable.Rows.Add(row);
}
}
}

DataRowExtensions.cs

public static class DataRowExtensions
{
public static void Load<T>(this DataRow dataRow, T item)
{
foreach (var property in typeof(T).GetProperties())
{
dataRow[property.Name] = property.GetValue(item, null);
}
}
}

Anwendungsbeispiel

void Main()
{
var rows = 10;
var q = from row in Enumerable.Range(0, rows)
select new
{
ID = row,
Description = string.Format("This is row #{0}.", row)
};

var dt = new DataTable();
dt.Load(q);

SpreadsheetMLHelper.ExportDataTableToWorksheet(dt, @"C:\Test.xls");
}
15.03.2011
Daniel Kuppitz 596 1 7
1
Danke, habe ich. Aber das Snippet erwartet eine DataTable, habe aber nur einen anonymen Typ (var data), der sich nicht in eine DataTable casten lässt.
– Gast 15.03.2011
0
Zum Generieren von Excel Dateien habe ich vor einiger Zeit GemBox Spreadsheet erfolgreich eingesetzt. Die Beispiele auf der Seite sollten für Dein Beispiel keine Fragen mehr offen lassen. Besonders die WebDemo sieht vielversprechend für das genannte Szenario aus.
15.03.2011
Daniel Kuppitz 596 1 7
0
Ich habe soetwas damit hinbekommen: http://excelpackage.codeplex.com/
16.03.2011
msiggi 140 1 5

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH