Как решить проблему медленного перемещения и прокрутки на листе Excel, который содержит текст на иврите? - PullRequest
0 голосов
/ 15 мая 2019

Я экспортирую список некоторых ресурсов в файл xlsx, где у каждого ресурса есть поля на английском и иврите. Проблема в том, что прокрутка листа очень медленная.

Замедление работы Microsoft Excel на нескольких ПК наблюдается в операционных системах Microsoft и Mac.

То, что я пробовал, не помогло:

То, что я пробовал, помогло:

  • Запись файла в формате CSV с кодировкой UTF-8.

Это решение не подходит для меня, так как я хочу иметь возможность экспортировать файл со стилями.

(Удаление колонок на иврите также помогло ускорить прокрутку)

Воспроизводимый пример с использованием PHPOffice / PhpSpreadsheet (при условии таблицы базы данных с полями на английском и иврите):

<?php

$nominees = \App\Entities\Nominee::all();

$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// Headings
$sheet->setCellValue('A1', 'שם');
$sheet->setCellValue('B1', 'Name');
$sheet->setCellValue('C1', 'ביוגרפיה');
$sheet->setCellValue('D1', 'Biography');

$row = 2;

// Rows
foreach ($nominees as $nominee) {
    $sheet->setCellValue('A' . '$row', $nominee->he_name);
    $sheet->setCellValue('B' . '$row', $nominee->en_name);
    $sheet->setCellValue('C' . '$row', $nominee->he_biography);
    $sheet->setCellValue('D' . '$row', $nominee->en_biography);

    $row++;
}

$sheet->setRightToLeft(true); // Example for styling

$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save('some/path');

1 Ответ

0 голосов
/ 17 мая 2019

Я предлагаю исследовать случай использования scorlling.Возможно, вы можете заменить прокрутку функцией «найти» или сортировать.

Медлительность - это функция пересчета полей на каждом макете / экране и рендеринга.

Поэтому я предлагаю также попытаться перевести вычисленные поляк статическим значениям.

Надеюсь, вы поняли, как я иду, и следуйте ему

...