gpt4 book ai didi

php - 将 Excel 工作表保存为 CSV 很慢

转载 作者:行者123 更新时间:2023-12-04 20:30:09 25 4
gpt4 key购买 nike

尝试将所有(5 页)工作表保存到名为工作表的单独 csv 文件中。
这段代码非常慢,提取 5 页大约需要 5 分钟,每页只有 30 行和 4 列。

<?php 
require 'vendor/autoload.php';

$xls = 'test.xls';
echo convertXlsCsv($xls);

function convertXlsCsv($xls)
:bool
{
$result = FALSE; // DEFAULT
try {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
$reader->setReadDataOnly(true);
$spreadsheet = $reader->load($xls);
$sheetCount = $spreadsheet->getSheetCount();
$loadedSheetNames = $spreadsheet->getSheetNames();
for ($i = 0; $i < $sheetCount; $i++) {
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
$writer->setDelimiter(';');
$writer->setEnclosure('');
$writer->setLineEnding("\r\n");
$writer->setSheetIndex($i);
$writer->setUseBOM(true); //Writing UTF-8 CSV files
$writer->save($loadedSheetNames[$i].'.csv');
$result = TRUE;
}
} catch (Exception $e){
echo "Error";
}
return $result;
}#endfunc

如果我使用 Xlsx代码不起作用 Calculation error
那么如何快速将所有页面保存到csv呢?

最佳答案

我可以确认它对我来说也很慢,每张纸大约 30 秒。问题似乎是使用 VLOOKUP .如果您将搜索范围缩小为仅搜索填充的单元格而不是整个列,您将获得更快的性能。

=VLOOKUP(A18, codes!A1:B250, 2, FALSE)

或者,如果您确保 代码 工作表按字母顺序排序,您可以使用 LOOKUP function :
=LOOKUP(A18, codes!A1:A250, codes!B1:B250)

而且它的执行速度也会更快。

请注意,由于某种原因,您无法填写这些公式中的任何一个。它们需要手动输入范围。 :(

关于php - 将 Excel 工作表保存为 CSV 很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52167607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com