Необходимо избегать задержек для записей 5 КБ в таблице данных при обновлении столбца таблицы Excel из таблицы данных - PullRequest
0 голосов
/ 25 января 2019

// Необходимо обновить столбцы листа Excel при получении данных из таблицы данных, введите код

     foreach (DataRow datarow in dt.Rows)
        {
            int[] colNumber = new int[] { 9,5,13,24,111,17,76,34,38 }; 
            rowcount += 1;
           for (int i = 0; i < colNumber.Length; i++)
            { string value = datarow[i].ToString();
           ws.Cells[rowcount, colNumber[i]] = value;
            }
        }

1 Ответ

0 голосов
/ 25 января 2019

Проблема не будет решена с помощью EntityFramework, так как, боюсь, вы сосредоточены не на той области. Основная причина этой задержки заключается в том, что вы пытаетесь получить доступ к объекту листа для каждой записи в dt.Rows.

Я рекомендую использовать GemBox.Spreadsheet для этой цели. Вы можете напрямую прикрепить данные к рабочему листу. Кроме того, вам не нужно явно преобразовывать значения в строку.

----------
// Code sample.
private void Download()
{
    DataTable datatable=yourDatatable;// callStore Procedure to fetch  DataTable
    ExcelFile csvFile = new ExcelFile();//GemBox.Spreadsheet ExcelFile  
    ExcelWorksheet ws = csvFile.Worksheets.Add("YourWorkSheetName");

    if (ws != null)
    {
        ws.InsertDataTable(datatable, 0, 0, true);
        // Use MemoryStream to save or to send it to client as response.
    }
}

----------
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...