php - PHP - PHPExcel Range to Array 忽略空列
问题描述
我在 Excel 工作表下方,我想将范围A1:D4
放入 PHP 数组中。
为此,我使用PHPExcel
如下。我有一个简单的Excel
课程:
Excel.php
public function __construct($file)
{
if ($file instanceof \SplFileInfo) {
$filename = $file->getRealPath();
} else {
$filename = $file;
}
$this->objPHPExcel = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename);
$this->objPHPExcel->setActiveSheetIndex(0);
}
然后我有一个简单的函数来获取范围,使用rangeToArray()函数:
public function getRange($range)
{
$spreadsheet = $this->objPHPExcel;
return $spreadsheet->rangeToArray($range,' ', true, true, true);
}
$excel = new ExcelManipulator(storage_path() . '/app/temp_files/myfile.xlsx');
$array = $excel->getRange($range);
return response()->json(['result' => $array], 200);
现在的问题是上述函数“切换”了列。见下面的输出:
[
'1': [
"A": " ",
"B": " ",
"C": " ",
"D": " "
],
'2': [
"A": "Company",
"B": "Acme Inc",
"C": " ",
"D": " "
],
'3': [
"A": "Address",
"B": "New York",
"C": " ",
"D": " "
],
'4': [
"A": " ",
"B": " ",
"C": " ",
"D": " "
]
]
正如您在数组中看到的那样,公司和地址文本已经从行2
和开始,而它们应该从3
Column A
Column B
解决方案
你可以试试看
function getRange($range, $inputFileName)
{
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFilename);
return $spreadsheet->getActiveSheet()->rangeToArray($range," ", true, true, true);
}
$inputFilename = storage_path() . '/app/temp_files/myfile.xlsx';
$array = getRange($range, $inputFilename);
推荐阅读
- javascript - 世博会文字转语音无法在 iPhone 7 上运行
- python - Python脚本在cmd中运行时不创建文本文件
- python - 如果我需要更多自定义功能,我可以手动编写 HTML 表单吗?
- java - 我无法运行 Eclipse IDE 安装程序
- graphql - Hasura 错误 - GraphQL 错误:在类型中找不到字段“user_id”:'projects_insert_input'
- node.js - 将 CORS 模块添加到单个快速路线不起作用
- r - 为 R 中的每个数据集创建一个高图
- html - 将 HTML 表格放在图标内的工具提示中
- sql - SQL Server:连接和 where 子句
- java - 网页抓取 - 从 Twitch.tv 获取信息