Добавить новый лист Excel в C #

Я использовал плагин NPOI для экспорта содержимого в виде файла Excel. Дело в том, что, когда файл экспорта достигает минимального размера экспорта (например, 65535), тогда он предает превышение предела размера. Поэтому я решил пойти на создание еще одного рабочего листа динамически, чтобы изменить записи после 65535. Но я не знаю, как написать логику для этого. Пожалуйста, расскажите мне, как я могу сделать логику для этого.

Код

GridModel model = GetItems().AsQueryable().ToGridModel(page, int.MaxValue, orderBy, string.Empty, filter); var orders = model.Data.Cast<ViewModel>(); //Create new Excel workbook var workbook = new HSSFWorkbook(); //Create new Excel sheet var sheet = workbook.CreateSheet(); //int index = workbook.AddPicture(@"D:\Temp\2\autocomplete tables", HSS); // HSSFPicture signaturePicture = patriarch.CreatePicture(anchor, index); ////(Optional) set the width of the columns sheet.SetColumnWidth(0, 10 * 256); sheet.SetColumnWidth(1, 20 * 256); sheet.SetColumnWidth(2, 110 * 256); sheet.SetColumnWidth(3, 30 * 256); //Create a header row var headerRow = sheet.CreateRow(0); //Set the column names in the header row headerRow.CreateCell(0).SetCellValue("Itemid"); headerRow.CreateCell(1).SetCellValue("ItemNo"); headerRow.CreateCell(2).SetCellValue("Title"); headerRow.CreateCell(3).SetCellValue("Status"); //(Optional) freeze the header row so it is not scrolled sheet.CreateFreezePane(0, 1, 0, 1); int rowNumber = 1; //Populate the sheet with values from the grid data foreach (ViewModel order in orders) { //Create a new row if (rowNumber < 65535) { var row = sheet.CreateRow(rowNumber++); //Set values for the cells row.CreateCell(0).SetCellValue(order.Itemid); row.CreateCell(1).SetCellValue(order.INo); row.CreateCell(2).SetCellValue(order.BTags); row.CreateCell(3).SetCellValue(order.Sid); } else { } } //Write the workbook to a memory stream MemoryStream output = new MemoryStream(); workbook.Write(output); //Return the result to the end user return File(output.ToArray(), //The binary data of the XLS file "application/vnd.ms-excel", //MIME type of Excel files "Items.xls"); //Suggested file name in the "Save as" dialog which will be displayed to the end user } 

благодаря

  object[,] objectrange; Excel.Range ExcelRangeNotFoundArticle; Excel.Application ActiveExelAplication = Globals.ThisAddIn.Application as Excel.Application; Excel.Worksheet ExNewWorksheet = ActiveExelAplication.Sheets.Add() as Excel.Worksheet;/*add new sheet here*/ ExNewWorksheet.Name = ("sheetName"); Excel.Worksheet ExWorksheet = ActiveExelAplication.ActiveSheet as Excel.Worksheet; ExcelRangeNotFoundArticle = ExWorksheet.get_Range("a1", "am12") as Excel.Range; objectrange= (object[,])ExcelRangeNotFoundArticle.Value; 

Надеюсь, что ниже будет работать для вас:

  foreach (ViewModel order in orders) { if (rowNumber % 65535 == 0 ) { sheet = workbook.CreateSheet(); sheet.SetColumnWidth(0, 10 * 256); sheet.SetColumnWidth(1, 20 * 256); sheet.SetColumnWidth(2, 110 * 256); sheet.SetColumnWidth(3, 30 * 256); headerRow.CreateCell(0).SetCellValue("Itemid"); headerRow.CreateCell(1).SetCellValue("ItemNo"); headerRow.CreateCell(2).SetCellValue("Title"); headerRow.CreateCell(3).SetCellValue("Status"); sheet.CreateFreezePane(0, 1, 0, 1); //If you want row number should start from 1. Otherwise comment it rowNumber = 1; } //Create a new row if (rowNumber < 65535) { var row = sheet.CreateRow(rowNumber++); //Set values for the cells row.CreateCell(0).SetCellValue(order.Itemid); row.CreateCell(1).SetCellValue(order.INo); row.CreateCell(2).SetCellValue(order.BTags); row.CreateCell(3).SetCellValue(order.Sid); } 
  • как читать заголовки столбцов данных и данные каждой ячейки в Excel Использование c #
  • Excel: поиск данных в скрытых ячейках (без их удаления)
  • Как использовать инфраструктуру Entity для базы данных MS Access
  • Отключение / обход печати при экспорте Excel в pdf с использованием Microsoft.Office.Interop.Excel
  • Неспособность IMessageFilter обрабатывать 0x800AC472 (VBA_E_IGNORE) делает реализацию IMessageFilter нерелевантной?
  • Чтение данных Excel с запятыми и возврат каретки
  • Работа с Excel в 64-битной среде
  • Добавить заголовок перед экспортом Excel
  • Как получить пользовательский ввод лист Excel и сгенерировать файл output.xls в C # windows firm?
  • Сохранить книгу в поток вместо файла
  • Какой тип Excel Worksheet.Usedrange возвращает
  • Interesting Posts

    Все параметры Excel выделены серым цветом

    Как импортировать текстовую строку как числовое значение в R?

    Excel VBA – Range.Find Error 1004

    Как я могу округлить десятичное значение до точности так, чтобы общее количество цифр не пересекало 15?

    Сопоставьте 2 столбца над 2 листами, затем скопируйте целую строку

    VBA отправляет электронное письмо от excel (в зависимости от состояния)

    преобразование рабочего листа в файл xlsx с помощью java

    пользовательская форма внутри подфункции

    групповые данные в определенном диапазоне в excel

    Openpyxl: похоже, не получается получить синтаксис для того, что я пытаюсь сделать (прочитайте следующую ячейку вниз)

    Верните 0, когда дата <сегодня

    Объединить строки из разных столбцов в Excel

    Как выйти из веб-страницы, не получив Internet Explorer «появляются несохраненные изменения», появляется при автоматизации с помощью vba

    Как получить коллекцию CommandButton?

    Excel Sql вызывает слишком мало ошибок параметров при запуске Sql в режиме чтения только в Excel

    Давайте будем гением компьютера.