Skip to content

Instantly share code, notes, and snippets.

@saltnpixels
Created December 8, 2020 17:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save saltnpixels/cb65ad0d3773296ef359f0b5d50a7594 to your computer and use it in GitHub Desktop.
Save saltnpixels/cb65ad0d3773296ef359f0b5d50a7594 to your computer and use it in GitHub Desktop.
WordPress Excel Spreadsheet
//add the php spreadsheet library via composer interminal
composer require phpoffice/phpspreadsheet
//put function in theme in WP. Use the get_spreadsheet on a file to get the file like a csv. Works on xlsx
function get_spreadsheet($filepath) {
require get_template_directory() . '/vendor/autoload.php'; //if not using wp remove get_template_directory()
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filepath);
$worksheet = $spreadsheet->getActiveSheet();
$worksheet = $spreadsheet->getActiveSheet();
$rows = $worksheet->toArray();
$header = array_shift($rows);
foreach ($header as $key => $column){
$header[$key] = strtolower(preg_replace("/\s+/", "_", $column));
}
$data = toKeyedRows($rows, $header);
return $data;
}
function toKeyedRows(array $rows, array $header)
{
array_walk($header,function($value,$key){ $value = $value?:$key; });
array_walk(
$rows,
function(&$row)use($header)
{
$row = array_combine($header,$row);
}
);
return $rows;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment