Convert excel file to csv

/**
Convert excel file to csv
*/
public function excel_to_csv()
{
ini_set('max_execution_time','0');
ini_set('memory_limit', '1G');

$xls_file = storage_path('excel_file') . '\\' . '1w.xls';
$file_info = pathinfo($xls_file);

Log::debug('文件路径:' . $xls_file);
if (!file_exists($xls_file)) {
Log::debug('文件不存在!');
}
$file_size = (filesize($xls_file) / 1024 / 1024) . "MB";
if ($file_size) {
Log::debug('Excel file size: '.$file_size);
}

// valide the file type
if (strtolower($file_info['extension']) == 'xls') {
$reader = new Xls();
}else{
$reader = new Xlsx();
}

$memonry = '【开始执行内存:'.(memory_get_usage()/1024/1024)."MB, ";
$memonry .= '峰值内存:'.(memory_get_peak_usage()/1024/1024)."MB】\r\n";
Log::debug($memonry);

$spreadsheet = $reader->load($xls_file);
$loadedSheetNames = $spreadsheet->getSheetNames();
$writer = new Csv($spreadsheet);

foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
Log::debug($sheetIndex);
$writer->setSheetIndex($sheetIndex);
$csv_path = storage_path('new_csv') . '\\' . $file_info['filename'] . '_' . $loadedSheetName . '.csv';
// $writer->save($loadedSheetName.'.csv');
$writer->save($csv_path);
}
$memonry = '【结束执行内存:'.(memory_get_usage()/1024/1024)."MB, ";
$memonry .= '峰值内存:'.(memory_get_peak_usage()/1024/1024)."MB】\r\n";
Log::debug($memonry);
Log::debug('All End!');

}

posted on   春分夏至  阅读(25)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示