reasonableframework/helper/spreadsheet-reader.lnk.php

64 lines
1.6 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
***/
2018-09-20 04:18:20 +00:00
// load spreadsheet reader library
2018-09-20 04:08:24 +00:00
loadVendor(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"
));
if(!function_exists("parse_excel_file")) {
2018-09-20 04:32:23 +00:00
function parse_excel_file($filepath, $format="xlsx", $setColumnName=false) {
2018-09-20 04:17:58 +00:00
$rows = array();
$spreadsheet = false;
2018-09-20 04:32:23 +00:00
$columnNames = array();
$fileFormat = strtolower($format);
2018-09-20 04:17:58 +00:00
2018-09-20 04:32:23 +00:00
if($fileFormat == "xlsx") {
2018-09-20 04:17:58 +00:00
$spreadsheet = new SpreadsheetReader_XLSX($filepath);
2018-09-20 04:32:23 +00:00
} elseif($fileFormat == "xls") {
2018-09-20 04:17:58 +00:00
$spreadsheet = new SpreadsheetReader_XLS($filepath);
2018-09-20 04:32:23 +00:00
} elseif($fileFormat == "csv") {
2018-09-20 04:17:58 +00:00
$spreadsheet = new SpreadsheetReader_CSV($filepath);
2018-09-20 04:32:23 +00:00
} elseif($fileFormat == "ods") {
2018-09-20 04:17:58 +00:00
$spreadsheet = new SpreadsheetReader_ODS($filepath);
} else {
$spreadsheet = new SpreadsheetReader($filepath);
}
2018-09-20 04:32:23 +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 {
$cols[] = $col;
}
$i++;
}
$rows[] = $cols;
} else {
$columnNames = array_merge($columnNames, $row);
}
}
}
return $rows;
2018-09-20 04:08:24 +00:00
}
}