Я использую ClosedXML.Excel для создания файла Excel из DataTable. Но если в DataTable хранится очень много записей (например миллион строк), то приложение закрывается с ошибкой памяти. Как мне переделать функцию создания Excel файла так, чтобы я мог загружать строки из DataTable в Excel файл по частям (по 10000 записей например). Моя функция для создания Excel файла выглядит так:
public static void DataTableToExcelClosedXML(DataTable dt, string filePath, string fileName)
{
XLWorkbook wb = new XLWorkbook();
wb.Worksheets.Add(dt, fileName);
wb.SaveAs(filePath);
}
Посоветую подключить Microsoft.Office.Interop.Excel
и Interop.Microsoft.Office.Core
и сам код:
using Excel = Microsoft.Office.Interop.Excel;
...
public static export(DataTable dt)
{
Excel.Application objExcel = new Excel.Application();
Excel.Workbook workbook = objExcel.Workbooks.Add();
Excel.Worksheet sheet = workbook.ActiveSheet;
Excel.Range range = sheet.Range[sheet.Cells[1, 1], sheet.Cells[ct.Rows.Count, ct.Columns.Count]];
for (int i=0; i< ct.Rows.Count; ++i)
for (int j = 0; j < ct.Columns.Count; ++j)
range.Cells[1+i, 1+j] = ct.Rows[i][j].ToString();
sheet.Cells.EntireColumn.AutoFit();
sheet.Cells.EntireRow.AutoFit();
sheet.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;
sheet.PageSetup.Zoom = false;
sheet.PageSetup.FitToPagesWide = 1;
sheet.PageSetup.FitToPagesTall = false;
sheet.PageSetup.ScaleWithDocHeaderFooter = true;
sheet.PageSetup.AlignMarginsHeaderFooter = true;
objExcel.Visible = true;
}
Можно так
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть коллекция вида ObservableCollection<BaseClass> Project {get;set;}
Panel1 открывается по нажатию на buttonНужно чтобы panel1 скрылась когда курсор выходит за ее границы