php 获取xlsx,使用php读取xlsx文件

我再看看

PHPExcel.

PHPExcel拥有Excel5(xls),Excel2007(xlsx),CSV,HTML和PDF的编写器;读者和Excel5(xls),Excel2007(xlsx),Excel 2003 XML,CSV,SYLK和Open Office Calc

在文档中都很清楚

编辑(引自手册)

有两种方法可以将文件读入PHPExcel:使用自动文件类型解析或显式.

自动文件类型解析检查使用PHPExcel分发的不同PHPExcel_Reader_IReader.如果其中一个可以加载指定的文件名,则使用该PHPExcel_Reader_IReader加载该文件.显式模式要求您指定应使用哪个PHPExcel_Reader_IReader.

您可以使用以下代码示例在自动文件类型解析模式下使用PHPExcel_IOFactory创建PHPExcel_Reader_IReader实例:

$objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx");

此功能的典型用途是,当您需要读取用户上传的文件时,您不知道他们是否正在上载xls或xlsx文件.

如果您需要在阅读器上设置一些属性(例如,仅读取数据,请稍后查看更多相关信息),那么您可能希望使用此变体:

$objReader = PHPExcel_IOFactory::createReaderForFile("05featuredemo.xlsx");

$objReader->setReadDataOnly(true);

$objReader->load("05featuredemo.xlsx");

您可以使用以下代码示例在显式模式下使用PHPExcel_IOFactory创建PHPExcel_Reader_IReader实例:

$objReader = PHPExcel_IOFactory::createReader("Excel2007");

$objPHPExcel = $objReader->load("05featuredemo.xlsx");

编辑(个人喜好)

在try / catch中包装你的加载器也是值得的

$fileName = '01simple.xlsx';

try {

$objPHPExcel = PHPExcel_IOFactory::load($fileName);

} catch (Exception $e) {

die("Error loading file: ".$e->getMessage()."
\n");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在前端使用 Vue 将 xlsx 文件通过 POST 请求发送到后端。可以使用 axios 库来发送 POST 请求。示例代码如下: ```javascript let formData = new FormData(); formData.append('file', file); axios.post('/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }).then(response => { console.log(response.data); }).catch(error => { console.log(error); }); ``` 接下来,在后端使用 PHP 解析 xlsx 文件并将数据录入 Excel 表格。可以使用 PHPExcel 库来解析 xlsx 文件和操作 Excel 表格。示例代码如下: ```php require_once 'PHPExcel/IOFactory.php'; $inputFileName = $_FILES['file']['tmp_name']; $excelReader = PHPExcel_IOFactory::createReaderForFile($inputFileName); $excelObj = $excelReader->load($inputFileName); $worksheet = $excelObj->getActiveSheet(); // 获取表格数据并录入数据库 foreach ($worksheet->getRowIterator() as $row) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); $data = []; foreach ($cellIterator as $cell) { $data[] = $cell->getValue(); } // TODO: 将数据录入数据库 } ``` 如果文件读取错误,可以在前端和后端都加入错误处理。在前端,可以通过 `catch` 捕获错误并提示用户。在后端,可以使用 `try...catch` 来捕获异常并返回错误信息。示例代码如下: 前端: ```javascript axios.post('/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }).then(response => { console.log(response.data); }).catch(error => { console.log(error); alert('文件上传失败!'); }); ``` 后端: ```php try { $inputFileName = $_FILES['file']['tmp_name']; $excelReader = PHPExcel_IOFactory::createReaderForFile($inputFileName); $excelObj = $excelReader->load($inputFileName); $worksheet = $excelObj->getActiveSheet(); // 获取表格数据并录入数据库 foreach ($worksheet->getRowIterator() as $row) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); $data = []; foreach ($cellIterator as $cell) { $data[] = $cell->getValue(); } // TODO: 将数据录入数据库 } } catch (Exception $e) { echo '文件读取错误:' . $e->getMessage(); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值