php 上传文件 读取文件单元格内容(excel/csv)

本文介绍了使用PHPExcel库读取CSV和Excel文件的方法,并提到了fgetcsv函数在读取CSV文件内容时的应用。
摘要由CSDN通过智能技术生成

一、PHPExcel 读取csv文件 和 excel文件(.xlsx)

https://github.com/PHPOffice/PHPExcel

$filePath = 'example.xlsx';
$inputFileType = \PHPExcel_IOFactory::identify($filePath);
$objReader = \PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($filePath);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$list = [];
for ($column = "A"; $column <= $highestColumn; $column++) {
    for ($row = 2; $row <= $highestRow; $row++) {
        $cell = $sheet->getCell($column . $row)->getValue();
        if($cell instanceof \PHPExcel_RichText) {
            $cell = $cell->__toString();
        }
        $list[$row][] = $cell;
    }
}
var_dump($list);
PHP Spreadsheet是一个强大的PHP库,用于处理Microsoft Excel(.xls, .xlsx, .xlsm等)和Google Sheets (.csv) 文件。如果你想要在PHP读取用户通过HTML表单上传的Excel文件,可以按照以下步骤操作: 1. 引入phpspreadsheet库: ```php require_once 'path/to/PHPExcel/IOFactory.php'; ``` 这里假设你已经下载并包含了phpspreadsheet的源码或者通过Composer安装了它。 2. 获取上传的文件: ```php $upload_dir = "uploads/"; $fileName = basename($_FILES['file']['name']); $fileType = $_FILES['file']['type']; $fileTempName = $_FILES['file']['tmp_name']; // 检查文件是否为Excel文件 if (stristr($fileType, 'application/vnd.ms-excel') || stristr($fileType, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')) { $filePath = $upload_dir . $fileName; move_uploaded_file($fileTempName, $filePath); } else { echo "只支持Excel文件(.xls, .xlsx)"; return; } ``` 3. 使用IOFactory读取文件内容: ```php try { $inputFileType = IOFactory::identify($filePath); $objPHPExcel = IOFactory::load($filePath, $inputFileType); } catch (Exception $e) { die('Error loading file "'.pathinfo($filePath,PATHINFO_BASENAME).'": '. $e->getMessage()); } ``` 4. 选择工作表并读取数据: ```php $worksheet = $objPHPExcel->getActiveSheet(); $data = []; foreach ($worksheet->getRowIterator() as $row) { $rowData = []; $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(FALSE); // 包含空单元格 foreach ($cellIterator as $cell) { $rowData[] = $cell->getValue(); } $data[] = $rowData; } // 现在$data数组里就是你所需的工作表数据 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值