hinimajesty/pop-excel-api

popExcelApi 是一个非常简单且易于扩展的 Excel API,用于按列提取数据

dev-master 2018-03-24 01:18 UTC

This package is auto-updated.

Last update: 2024-09-28 11:00:05 UTC


README

PopExcelApi 易于使用且高度可定制。你的 csv 文件中是否有你想要获取数据的列?关于将列数据推送到数组。PopExcelAPi 已经根据假设 CSV 文件的第一列包含名称和第二列包含联系信息设置了名称和联系信息。稍后将会详细介绍如何自定义这些。

安装

从 Github 下载 ZIP 文件并将其解压缩到你的项目中。在所有将使用 popExcelAPI 的脚本中,确保 require /path/to/vendor/autoload.php。autoload.php 是 popExcelApi 所需所有依赖项的自动加载器。在引入 autoload 文件后,确保使用 use 关键字导入 src 文件夹中的类,因为所有类都是命名空间的。已提供示例文件夹,请深入了解以获得更好的解释。

**注意:** 为了顺畅运行,Composer 被用来管理类的自动加载,因此可能需要 Composer。如果你是 Composer 的初学者,请参阅本文件中的基本用法示例。

基本用法

在 html 中,你将有一个具有名称属性的文件输入字段,在这个例子中,我们的文件输入字段名为 excel_file;

<input type="file" name="excel_file">

接下来,在将数据发送到的 php 脚本中,你可以这样提取数据

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

use Lixweb\Helpers;
use Lixweb\popExcelApiContract; 
use Lixweb\popExcelApi; 

$form_input_field = 'excel_file'; 
$excelApi = new popExcelApi($form_input_field);

$names    = $excelApi->getNames();
$contacts = $excelApi->getContacts(); 

从这个例子中,Excel 文件的第一列包含名称,第二列包含联系人,我相信趋势已经很清晰了。在你的项目中,你可能会有诸如 first_name、last_name、address 等列。对于这些应用程序,你可能需要稍微扩展一下代码。这个库是为一个小项目而生的。由于开发者不想浪费时间学习其他提供更多功能的 PHP Excel 库,因此他根据自己的需求创建了它。如果你想找到一个更健壮的解决方案,你可以查看 PHPOffice,但如果你想简单地将 CSV 文件的列提取到数组中,那么这个就可以完成任务。

错误代码

默认情况下,getDataFromColumn 函数会返回两种类型的错误。当它返回 "err2" 时,表示尚未设置文件输入字段的名称。由于这是隐式进行的,因此在开发过程中几乎不会遇到此错误,但如果你想要编辑代码,那么了解它是有好处的。当看到 "err1" 时,表示文件扩展名无效。我们只期望 csv 文件。任何其他文件类型都不会被处理,因此会返回 "err1" 错误。

扩展现有功能

如前所述,你只能从两列中获取数据。列计数从 1 开始。如果你的 csv 文件有更多列,你可以为这些列提供更多描述性的方法。这可以在 popExcelApiContract.php 和 popExcelApi.php 文件中完成。假设我的 Excel 文件包含一个用于地址的第三列,在 src 目录中的 popExcelApiContract.php 文件中,我会添加一个新的合约,即一个方法签名,例如

abstract public function getAddress();

完成此操作后,在 popExcelApi.php 文件中,我会为方法签名提供实现

public function getAddress( ){
 return $this->getDataFromColumn( 3 );
}

由于列的计数从索引 1 开始,第三列是数字 3。

Voila,这就是你所需做的所有事情,现在你可以继续在你的应用程序中使用这个新功能。提交拉取请求,添加功能,修正代码;随意修改...