/**
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!');
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律