Aspose.Cells.CellsException - «Вы используете пробную копию и открыли файлы, размер которых превышает ограничение» - PullRequest
0 голосов
/ 02 января 2019

Я создал функцию, которая возвращает datatable из workbook.

public async Task<DataTable> GetDataTableFromTabRowColumn(string sheetName, int startRow, int endRow, int startCol, int endCol)
  {
     var task = new Task(() =>
     {
        DataTable dt = new DataTable();
        Workbook wb = new Workbook(FilePath); // error line
        Worksheet worksheet = wb.Worksheets[sheetName];

        dt = worksheet.Cells.ExportDataTable(startRow - 1, startCol - 1, (endRow - startRow + 1), (endCol - startCol + 1), options);
     });

     task.Start();
     await task;

     return dt;
  }

Работало нормально. Когда я сделал функцию асинхронной, она показывает ошибку:

Aspose.Cells.CellsException: «Вы используете пробную копию и открыли файлы, превышающие ограничение. '

Я использую лицензированный Aspose. Пожалуйста, помогите

Ответы [ 2 ]

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

Прежде чем обвинить его в Aspose, давайте исправим асинхронный подход.

public async Task<DataTable> GetDataTableFromTabRowColumn(string sheetName, int startRow, int endRow, int startCol, int endCol)
{                  
    var task = Task.Run(() =>
    {            
        Workbook wb = new Workbook(FilePath); // error line
        Worksheet worksheet = wb.Worksheets[sheetName];

        DataTable dt = worksheet.Cells.ExportDataTable(startRow - 1, startCol - 1, (endRow - startRow + 1), (endCol - startCol + 1), options);

        return dt;
    });

    return await task;            
}

Обратите внимание, что dt может и должен быть локальным, как этот.
Удалите строку private DataTable dt = null;, потому что она может охватыватьдо ошибки.

Когда это все равно дает ошибку, я бы снова посмотрел на Aspsose.

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

Вы должны добавить лицензию Aspose этими методами

Aspose.Cells пытается найти лицензию в следующих местах:

Явный путь Папка, содержащая Aspose.Cells.dll

Папка, содержащая сборку с именем Aspose.Cells.dll

Папка с записью сборки (ваш .exe)

Встроенный ресурс в сборке с именем Aspose.Cells.dll

//Instantiate an instance of license and set the license file through its path
Aspose.Cells.License license = new Aspose.Cells.License();
license.SetLicense("Aspose.Cells.lic");

или

//Instantiate an instance of license and set the license through a stream
Aspose.Cells.License license = new Aspose.Cells.License();
license.SetLicense(myStream);
...