Hallo zusammen,
Ich habe hier eine for Schleife, diese füllt Daten aus einer DataViewGrid (welche Ihre Daten aus einer Datatable zieht) einen Excel Sheet. Es geht um ca. 57 Spalten pro Datensatz und rund 4.000 Datensätze (können auch mal 20.000 sein). Das dauert bei rund 4.000 Datensätze über 10 Minuten.... das geht doch schneller, oder?
Hier das Stückchen Code, wie würdet ihr das machen um es zu beschleunigen?
Alles anzeigen
Merci vorab,
Matthias
Ich habe hier eine for Schleife, diese füllt Daten aus einer DataViewGrid (welche Ihre Daten aus einer Datatable zieht) einen Excel Sheet. Es geht um ca. 57 Spalten pro Datensatz und rund 4.000 Datensätze (können auch mal 20.000 sein). Das dauert bei rund 4.000 Datensätze über 10 Minuten.... das geht doch schneller, oder?
Hier das Stückchen Code, wie würdet ihr das machen um es zu beschleunigen?
Quellcode
- for (int i = 0; i < MyGrid.Rows.Count - 1; i++)
- {
- for (int j = 0; j < MyGrid.Columns.Count; j++)
- {
- worksheet.Cells[i + 2, j + 1] = MyGrid.Rows[i].Cells[j].Value.ToString();
- if(j == 6)
- {
- // string hlpNumber = MyGrid.Rows[i].Cells[j].Value.ToString();
- // hlpNumber.Remove(5, 10);
- //MessageBox.Show(MyGrid.Rows[i].Cells[j].Value.ToString());
- // worksheet.Cells[i + 2, j + 1] = hlpNumber.ToString();
- }
- }
- }
- ((Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, 6]).EntireColumn.NumberFormat = "0";
- // save the application
- workbook.SaveAs(saveFileDialog1.FileName,56, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
- // Exit from the application
- app.Quit();
- }
Merci vorab,
Matthias
Das Leben ist binär - du bist eine 1, oder eine 0