0

0

PHP读取Excel文件方法及常见问题解答

PHPz

PHPz

发布时间:2023-06-09 11:41:34

|

4861人浏览过

|

来源于php中文网

原创

php读取excel文件方法及常见问题解答

Excel是一种非常普遍的电子表格文件格式,很多业务和数据都存放在Excel文件中。在开发过程中,如果需要将Excel文件中的数据导入系统中,就需要使用PHP读取Excel文件。本文将介绍PHP读取Excel文件的方法及常见问题解答。

一、PHP读取Excel文件方法

1.使用PHPExcel类库

PHPExcel是一个PHP类库,可以方便地读取Excel文件中的数据。可以通过在composer.json文件中添加PHPExcel组件包,使用composer命令进行安装。

立即学习PHP免费学习笔记(深入)”;

安装完成后,在代码中引入PHPExcel类库,并使用PHPExcel_IOFactory::load()方法打开Excel文件,使用PHP的循环语句遍历读取其中的数据。

以下是读取Excel文件的示例代码:

require_once '/path/to/PHPExcel.php';

// 这里的路径是Excel文件的绝对路径
$reader = PHPExcel_IOFactory::load('/path/to/example.xlsx');
// 获取Excel文件中所有的工作表
$sheets = $reader->getAllSheets();

$data = array();
// 循环读取每个工作表中的数据
foreach ($sheets as $sheet) {

// 获取当前工作表的数据行数和列数
$rowCount = $sheet->getHighestRow(); // 数据行数
$columnCount = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); // 数据列数

// 循环获取每行数据
for ($i = 1; $i <= $rowCount; $i++) {
    // 循环获取每列数据
    $row = array();
    for ($j = 0; $j < $columnCount; $j++) {
        // 通过坐标获取单元格数据
        $cellValue = $sheet->getCellByColumnAndRow($j, $i)->getValue();
        // 将数据存入数组
        $row[] = $cellValue;
    }
    // 将行数据存入数组
    $data[] = $row;
}

}

var_dump($data);

2.使用PHPOffice/PhpSpreadsheet类库

PhpSpreadsheet是PHPExcel的替代类库,它提供了更好的性能和更完善的功能。可以通过composer命令进行安装。

以下是使用PhpSpreadsheet读取Excel文件的示例代码:

require_once '/path/to/vendor/autoload.php';

use PhpOfficePhpSpreadsheetIOFactory;

// 这里的路径是Excel文件的绝对路径
$reader = IOFactory::createReaderForFile('/path/to/example.xlsx');
// 打开Excel文件,读取所有数据到内存中
$spreadsheet = $reader->load('/path/to/example.xlsx');

$data = array();
// 迭代所有工作表和行
foreach ($spreadsheet->getActiveSheet()->getRowIterator() as $row) {

$rowData = array();
// 迭代所有单元格
foreach ($row->getCellIterator() as $cell) {
    // 获取单元格数据
    $cellValue = $cell->getValue();
    // 将数据存入数组
    $rowData[] = $cellValue;
}
// 将行数据存入数组
$data[] = $rowData;

}

var_dump($data);

二、常见问题解答

1.如何处理Excel中的空格?

Higgsfield
Higgsfield

电影级AI视频生成工具

下载

Excel表格中经常会出现不必要的空格,需要在读取数据时进行处理。可以使用trim()函数来去除字符串两端的空格。

以下示例代码展示了如何在读取Excel数据时去除空格:

require_once '/path/to/PHPExcel.php';

$reader = PHPExcel_IOFactory::load('/path/to/example.xlsx');
$data = array();
foreach ($reader->getActiveSheet()->getRowIterator() as $row) {

$rowData = array();
foreach ($row->getCellIterator() as $cell) {
    $cellValue = $cell->getValue();
    $cellValue = trim($cellValue); // 去除空格
    $rowData[] = $cellValue;
}
$data[] = $rowData;

}

var_dump($data);

2.如何处理Excel中的日期?

Excel中的日期值实际上是一个数字,需要在读取数据后进行格式化。可以使用PHP的date()函数来将数字转换为日期格式。

以下是示例代码:

require_once '/path/to/PHPExcel.php';

$reader = PHPExcel_IOFactory::load('/path/to/example.xlsx');
$data = array();
foreach ($reader->getActiveSheet()->getRowIterator() as $row) {

$rowData = array();
foreach ($row->getCellIterator() as $cell) {
    // 获取单元格数据
    $cellValue = $cell->getValue();
    // 如果当前单元格是日期值,则进行格式化
    if (PHPExcel_Shared_Date::isDateTime($cell)) {
        $cellValue = PHPExcel_Shared_Date::ExcelToPHP( $cellValue ); // 将数字转换为时间戳
        $dateValue = date("Y-m-d H:i:s", $cellValue); // 格式化日期
        $rowData[] = $dateValue;
    } else {
        $rowData[] = $cellValue;
    }
}
$data[] = $rowData;

}

var_dump($data);

3.如何处理Excel中的数字格式?

Excel中的数字值可能带有千位分隔符、小数位数等格式,需要在读取数据后进行格式化。可以使用PHP的number_format()函数来将数字进行格式化。

以下是示例代码:

require_once '/path/to/PHPExcel.php';

$reader = PHPExcel_IOFactory::load('/path/to/example.xlsx');
$data = array();
foreach ($reader->getActiveSheet()->getRowIterator() as $row) {

$rowData = array();
foreach ($row->getCellIterator() as $cell) {
    // 获取单元格数据
    $cellValue = $cell->getValue();
    // 如果当前单元格是数字值,则进行格式化
    if (is_numeric($cellValue)) {
        $cellFormat = $cell->getStyle()->getNumberFormat()->getFormatCode(); // 获取单元格格式
        $cellValue = number_format($cellValue, PHPExcel_Style_NumberFormat::toFormattedString($cellValue, $cellFormat), '.', ''); // 进行格式化
        $rowData[] = $cellValue;
    } else {
        $rowData[] = $cellValue;
    }
}
$data[] = $rowData;

}

var_dump($data);

以上就是php读取excel文件方法及常见问题解答的内容。通过使用PHPExcel或PhpSpreadsheet类库可以方便地读取Excel文件数据,同时需要注意处理Excel中的空格、日期和数字格式。

相关文章

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

17

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

91

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

124

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

14

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

59

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 13.2万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号