如何解决包含希伯来语文本的Excel工作表中的缓慢移动和滚动?

时间:2019-05-15 18:18:00

标签: php excel phpspreadsheet

我正在将一些资源的列表导出到xlsx文件中,其中每个资源都具有英语和希伯来语字段。 问题是滚动工作表的速度非常慢。

在装有Microsoft和Mac操作系统的多台PC上使用Microsoft Excel遇到了速度缓慢的问题。

我尝试过的操作无济于事:

我尝试过的方法有帮助:

  • 以UTF-8编码的CSV格式写入文件。

这个解决方案对我来说还不够好,因为我希望能够导出带有样式的文件。

(删除希伯来语列也有助于加快滚动速度)

使用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 :(得分:0)

我建议调查陪练用例。 也许您可以将滚动替换为“查找”或排序功能。

慢度是重新计算每个布局/屏幕和渲染上的字段的功能。

因此,我建议您还尝试将计算出的字段转换为静态值。

希望您能掌握我要走的路线,并按照说明行事。