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ŚĆ
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 № 1Pamiętaj, aby po drodze zmienić indeks. W tej chwili zawsze nadpisujesz wiersz 1, zwiększaj go z każdym wierszem.