Экспорт данных в excel на языке C#
У меня есть данные больше, чем 1 лакх, которые мне нужно экспортировать в excel. Поэтому когда я экспортирую данные для экспорта больших данных требуется слишком много времени :(
и если я экспортирую от 500 до 1000 записей, то они экспортируются скоро, но не более того.
Пожалуйста, помогите мне экспортировать данные быстро и быстро для записей 1 лакх
Что я уже пробовал:
string _path = "C:\\Test.xls"; DataSet ds = new DataSet(); ds.Tables.Add(dt); \\loading datatable "dt" into dataset Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkSheet.Cells[1, 1] = "Sheet 1 content"; xlWorkBook.SaveAs(_path, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); ExportDataSetToExcel(ds, _path); private void ExportDataSetToExcel(DataSet ds, string _filename) { //Creae an Excel application instance Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); //Create an Excel workbook instance and open it from the predefined location Microsoft.Office.Interop.Excel.Workbook excelWorkBook = excelApp.Workbooks.Open(_filename); foreach (DataTable table in ds.Tables) { //Add a new worksheet to workbook with the Datatable name Microsoft.Office.Interop.Excel.Worksheet excelWorkSheet = excelWorkBook.Sheets.Add(); excelWorkSheet.Name = table.TableName; for (int i = 1; i < table.Columns.Count + 1; i++) { excelWorkSheet.Cells[1, i] = table.Columns[i - 1].ColumnName; } for (int j = 0; j < table.Rows.Count; j++) { for (int k = 0; k < table.Columns.Count; k++) { excelWorkSheet.Cells[j + 2, k + 1] = table.Rows[j].ItemArray[k].ToString(); } } } excelWorkBook.Save(); excelWorkBook.Close(); excelApp.Quit(); }