/ / Eksportuj do programu Excel w programie asp.net za pomocą Microsoft.Office.Interop.Excel - c #, asp.net, eksport do programu Excel

Eksportuj do Excela w asp.net przy użyciu Microsoft.Office.Interop.Excel - c #, asp.net, export-to-excel

Korzystam z następującego przykładu na Microsoft.com strona internetowa do eksportu danych z serwera sql do arkusza Excel nieznacznie zmodyfikowałem przykład, aby go użyć datatable dla mojej wersji podczas debugowania pętla przechodzi przez wszystkie wiersze, ale pokazuje tylko ostatni wiersz w rzeczywistym pliku Excela

Poniżej znajduje się kod dla vs 2010, jestem pewien, że coś przeoczyłem

foreach (DataRow row in dt.Rows)
{
// rowCounter++;
workSheet.Cells[1, "A"] = row["Date"];
workSheet.Cells[1, "B"] = row["Title"];
workSheet.Cells[1, "C"] = row["Description"];
}
((Excel.Range)workSheet.Columns[1]).AutoFit();
((Excel.Range)workSheet.Columns[2]).AutoFit();
((Excel.Range)workSheet.Columns[3]).AutoFit();

Jak mogę również zmodyfikować ten kod, aby zapisywał dane wyjściowe w Download_Excel.xls plik

Powyższy kod pokazuje tylko ostatni wiersz w programie Excel. WYDAJNOŚĆ wprowadź opis obrazu tutaj

Nie ma też własnego tytułu.

DWIE BŁĘDY MIAŁEM.

Pierwszy ROWINDEX zaczynał się od 1, więc ustawiłem ROWINDEX= 2 i wszystko działało dobrze

KOD ROBOCZY

foreach (DataRow row in dt.Rows)
{
rowCounter++;
workSheet.Cells[rowCounter, "A"] = row["Date"];
workSheet.Cells[rowCounter, "B"] = row["Title"];
workSheet.Cells[rowCounter, "C"] = row["Description"];
}

string fileName = "Product.xls";
excelApp.DisplayAlerts = false;
workSheet.SaveAs(HttpContext.Current.Server.MapPath("../"+fileName));

Odpowiedzi:

0 dla odpowiedzi № 1

Pamiętaj, aby po drodze zmienić indeks. W tej chwili zawsze nadpisujesz wiersz 1, zwiększaj go z każdym wierszem.