reasonableframework/helper/spreadsheet-reader.lnk.php

69 lines
2.2 KiB
PHP
Raw Normal View History

2018-09-20 04:08:24 +00:00
<?php
/**
* @file spreadsheet-reader.lnk.php
* @date 2018-09-20
* @author Go Namhyeon <gnh1201@gmail.com>
* @brief Excel file parser
***/
if(!is_fn("parse_excel_file")) {
2019-05-20 08:19:05 +00:00
function parse_excel_file($filepath, $format="xlsx", $setColumnName=false) {
$rows = array();
2018-09-20 11:56:29 +00:00
2019-05-20 08:19:05 +00:00
$required_files = array(
"spreadsheet-reader/php-excel-reader/excel_reader2",
"spreadsheet-reader/SpreadsheetReader",
//"spreadsheet-reader/SpreadsheetReader_CSV",
//"spreadsheet-reader/SpreadsheetReader_XLSX",
//"spreadsheet-reader/SpreadsheetReader_XLS",
//"spreadsheet-reader/SpreadsheetReader_ODS"
);
foreach($required_files as $file) {
2019-05-20 09:03:31 +00:00
include("./vendor/_dist/" . $file . ".php");
2019-05-20 08:19:05 +00:00
}
2018-09-20 11:56:29 +00:00
2019-05-20 08:19:05 +00:00
$spreadsheet = false;
$columnNames = array();
2019-06-15 06:31:52 +00:00
2019-05-20 08:19:05 +00:00
/*
2019-06-15 06:31:52 +00:00
$fileFormat = strtolower($format);
2019-05-20 08:19:05 +00:00
if($fileFormat == "xlsx") {
$spreadsheet = new SpreadsheetReader_XLSX($filepath);
} elseif($fileFormat == "xls") {
$spreadsheet = new SpreadsheetReader_XLS($filepath);
} elseif($fileFormat == "csv") {
$spreadsheet = new SpreadsheetReader_CSV($filepath);
} elseif($fileFormat == "ods") {
$spreadsheet = new SpreadsheetReader_ODS($filepath);
} else {
$spreadsheet = new SpreadsheetReader($filepath);
}
*/
$spreadsheet = new SpreadsheetReader($filepath);
2018-09-20 04:32:23 +00:00
2019-05-20 08:19:05 +00:00
foreach($spreadsheet as $index=>$row) {
if(!$setColumnName) {
$rows[] = $row;
} else {
if($index > 0) {
$i = 0;
$cols = array();
foreach($row as $col) {
if((count($columnNames) - 1) > $i) {
$cols[$columnNames[$i]] = $col;
} else {
2019-05-20 09:03:31 +00:00
$cols[] = $col;
2019-05-20 08:19:05 +00:00
}
$i++;
}
$rows[] = $cols;
} else {
$columnNames = array_merge($columnNames, $row);
}
}
}
return $rows;
}
2018-09-20 04:08:24 +00:00
}