gpt4 book ai didi

PhpSpreadSheet:如何将工作簿工作表保存在单个 CSV 文件中

转载 作者:行者123 更新时间:2023-12-04 20:51:54 27 4
gpt4 key购买 nike

我正在使用 PhpSpreadSheet,我需要将工作簿中包含的工作表保存为单独的 CSV 文件。

我尝试使用 $reader->setLoadAllSheets();但最后我总是有一个包含工作簿第一张表的 CSV 文件。

这是我的代码示例:

    $excel = 'excelfile.xlsx';
$name = 'newCsvName';

//Read the file
$reader = new Xlsx();
$reader->setReadDataOnly(true);
$reader->setLoadAllSheets();
$spreadsheet = $reader->load($excel);

//Write the CSV file
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
$writer->setDelimiter(";");
$csvPath = 'csv_files/' . $dir . '/' . $name .'.csv';
$writer->save($csvPath);

最佳答案

这就是我解决它的方法。
我首先将包含的每张工作表加载到 excel 文件中,然后使用信息保存一个新的 CSV 文件。我确信应该有更好的方法,但它工作正常。

$excel = 'excelfile.xlsx';
$name = 'newCsvName';
$reader = new Xlsx();
$reader->setReadDataOnly(true);

//Get all sheets in file
$sheets = $reader->listWorksheetNames($excel);

//Loop for each sheet and save an individual file
foreach($sheets as $sheet){
//Load the file
$spreadsheet = $reader->load($excel);

//Write the CSV file
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
$writer->setDelimiter(";");
$csvPath = 'csv_files/' . $dir . '/' . $name.'_'.$sheet.'.csv';
$writer->save($csvPath);
}

关于PhpSpreadSheet:如何将工作簿工作表保存在单个 CSV 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57299917/

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