Laden...

Excelarbeitsblatt füllen mit List<> Einträgen

Erstellt von Nordlicht321 vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.951 Views
N
Nordlicht321 Themenstarter:in
11 Beiträge seit 2015
vor 9 Jahren
Excelarbeitsblatt füllen mit List<> Einträgen

Hallo Leute,

ich habe das folgende Anliegen. Ich habe eine List mit mehreren Einträgen, welche jeweils aus mehreren Elementen bestehen.

List<Auto> Autoliste = new List<Auto>;

Autoliste enthält jeweils: Marke, Modell und Variante

Mein aktueller Code um die Excelliste zu füllen lautet wie folgt:

 	public partial class MainForm
	{
		public void ProtokollToolStripMenuItemClick(object sender, EventArgs e)
		{
			//Deklaration der einzelnen Variablen
			Excel.Application ExcelAnwendung;
			Excel._Workbook ExcelArbeitsmappe;
			Excel._Worksheet ExcelArbeitsblatt;
			try
			{
				//Excel starten
				ExcelAnwendung = new Excel.Application();
				ExcelAnwendung.Visible = true;
				//Neues Arbeitsblatt anlegen
				ExcelArbeitsmappe = (Excel._Workbook)(ExcelAnwendung.Workbooks.Add(Missing.Value));
				ExcelArbeitsblatt = (Excel._Worksheet)ExcelArbeitsmappe.ActiveSheet;
				//Alle Autos in der Exceltabelle auflisten
				int countplus1 = 0;
				int countplus4 = 0;

				foreach (Auto A in Autoliste)
				{
					//Zeilenabstand einstellen
					countplus1 += 1;
					countplus4 += 4;
					//Liste füllen
					ExcelArbeitsblatt.Cells[3 + countplus4, 2] = "Marke:";
					ExcelArbeitsblatt.Cells[3 + countplus4 + 1, 2] = "Modell:";
					ExcelArbeitsblatt.Cells[3 + countplus4 + 2, 2] = "Variante:";
					ExcelArbeitsblatt.Cells[3 + countplus4, 3] = A.Marke;
					ExcelArbeitsblatt.Cells[3 + countplus4 + 1, 3] = A.Modell;
					ExcelArbeitsblatt.Cells[3 + countplus4 + 2, 3] = A.Variante;					
				}
			}
		}
	}

Die Liste in Excel sieht beispielhaft wie folgt aus:

Marke: Audi
Modell: A3
Variante: Cabrio

Marke: Audi
Modell:A4
Variante: Limousine

Marke: VW
Modell: Golf
Variante: Kombi

Marke: Audi
Modell: A4
Variante: Kombi

Die Excelliste möchte ich aber wie folgt aufbauen:

Marke: Audi
...Modell: A3
......Variante: Limousine
....................Kombi
....................Schrägheck
...Modell: A4
......Variante: Limousine
....................Kombi

Marke: VW
...Modell: Golf
..............usw.

Kann mir jemand erklären wie man das angeht oder mal ein Beispielcode posten wie man da vorgeht? Ich wollte es mit try und catch versuchen, bin aber nicht wirklich weiter gekommen.

Vielen Dank für eure Hilfe

1.696 Beiträge seit 2006
vor 9 Jahren

Hallo,

du kannst per LINQ die Liste zunächst aufbereiten und danach in Excel übernehmen. Schau mal hier Gruppieren von Abfrageergebnisse

Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::