ЧаВо

Как исправить исключение System.StackOverFlowException на Workbook.CalculateFormula?

Иногда пользователи сталкиваются с исключением System.StackOverFlowException при использовании метода Workbook.CalculateFormula. Это исключение обычно возникает из-за того, что размер стека по умолчанию в IIS слишком мал (только 265 кб). Вы можете исправить эту ошибку, создав еще один поток с увеличенным размером стека, а затем переместив свой код, связанный с Workbook.CalculateFormula, внутрь него.

Проблема с толщиной линий при преобразовании Excel в PDF

Иногда, когда файл Excel преобразуется в PDF, толщина линий в выходном PDF отличается. Эта проблема вызвана не Aspose.Cells, а Adobe Reader, когда установлены параметры “Плавность обработки изображения” и “Улучшение тонких линий”. Снятие этих параметров отобразит PDF корректно.

Если снять параметры “Плавность обработки изображения” и “Улучшение тонких линий”, толщина линий остается неизменной. Для этого выполните следующие шаги:

  • Перейдите в Редактирование
  • Выберите Настройки
  • В разделе Отображение страницы отметьте “Плавность обработки изображения” и “Улучшение тонких линий”

Если убрать галочки у “Плавность обработки изображения” и “Улучшение тонких линий”, толщина линий остается той же. Для этого выполните следующие шаги:

  • Перейдите в Редактирование
  • Выберите Настройки
  • В разделе Отображение страницы уберите галочки у “Плавность обработки изображения” и “Улучшение тонких линий”

Как исправить исключение System.OutOfMemoryException при загрузке больших электронных таблиц?

Есть серьезные шансы на то, что конструктор Workbook может сгенерировать исключение System.OutOfMemoryException при загрузке больших электронных таблиц. Это исключение указывает на то, что доступной памяти недостаточно для полной загрузки электронной таблицы в память, поэтому электронная таблица должна быть загружена с включенными Настройками памяти.

API Aspose.Cells предоставляют настройки памяти для оптимизации потребления памяти при загрузке и обработке электронных таблиц. Эти опции также полезны для эффективной загрузки больших электронных таблиц с огромными наборами данных в объект Workbook, как показано ниже.

Определите, какой размер стека нужен для определенной Workbook

Хотя мы улучшили движок расчета формул Aspose.Cells и в большинстве случаев вы должны иметь возможность успешно вычислить все формулы для данного шаблонного файла без указания меньшего размера стека. Однако иногда System.StackOverFlowException при методе Workbook.CalculateFormula может быть неизбежным. Мы предоставляем новые API для пользователей отслеживать расчеты формул. Мы добавили класс с именем “AbstractCalculationMonitor” и предоставили свойство, т. е., CalculationOptions.CalculationMonitor, чтобы справиться/отследить проблему.

Пользователи могут отслеживать размер стека сами, используя API. Обратите внимание, что проверка стека для каждой ячейки обязательно приведет к значительному ухудшению производительности. См. пример сегмента кода для вашего справочника: