Mohammed_Faisal_Majeed Ответов: 2

Экспорт данных в 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();

         }

2 Ответов

Рейтинг:
1

Mohammed_Faisal_Majeed

Я не нашел никакого решения для быстрого и быстрого экспорта из этих приведенных выше ссылок пожалуйста помогите

VR Karthikeyan

Вы пробовали EPPlus?

Mohammed_Faisal_Majeed

Да я пытался :(

VR Karthikeyan

Я уже использовал EPPlus раньше, он был очень быстр с моими огромными данными (75 столбцов, 1 лакх строк. На самом деле EPPlus ускоряет экспорт огромных данных, чем Excel Interop. Попробовать экспортировать данные в виде ExcelRange, вместо того, чтобы писать по одной ячейке. Также проверьте эту ссылку. http://www.codeproject.com/Tips/659666/Export-very-large-data-to-Excel-file

Рейтинг:
0

Member 12444785

Я согласен с VR Картикеян, EPPlus является хорошим выбором. В любом случае, вы можете пройти и посмотреть ссылки ниже: Работа с документом excel на языке C# - импорт/экспорт данных из DataTable в Excel или Бесплатный класс C# "экспорт в Excel" с использованием OpenXML