Skip to content

Commit 07fb4a9

Browse files
Merge pull request #369 from contactashish13/issue-368
PHPOffice library deprecated
2 parents d10130d + 80ceed4 commit 07fb4a9

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

classes/Visualizer/Module.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -253,24 +253,29 @@ private function _getCSV( $rows, $filename ) {
253253
* @param string $filename The name of the file to use.
254254
*/
255255
private function _getExcel( $rows, $filename ) {
256-
// PHPExcel does not like sheet names longer than 31 characters.
256+
// PHPExcel did not like sheet names longer than 31 characters and we will assume the same with PhpSpreadsheet
257257
$chart = substr( $filename, 0, 30 );
258258
$filename .= '.xlsx';
259259

260+
$vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload.php';
261+
if ( is_readable( $vendor_file ) ) {
262+
include_once( $vendor_file );
263+
}
264+
260265
$xlsData = '';
261-
if ( class_exists( 'PHPExcel' ) ) {
262-
$doc = new PHPExcel();
266+
if ( class_exists( 'PhpOffice\PhpSpreadsheet\Spreadsheet' ) ) {
267+
$doc = new PhpOffice\PhpSpreadsheet\Spreadsheet();
263268
$doc->getActiveSheet()->fromArray( $rows, null, 'A1' );
264269
$doc->getActiveSheet()->setTitle( sanitize_title( $chart ) );
265270
$doc = apply_filters( 'visualizer_excel_doc', $doc );
266-
$writer = PHPExcel_IOFactory::createWriter( $doc, 'Excel2007' );
271+
$writer = PhpOffice\PhpSpreadsheet\IOFactory::createWriter( $doc, 'Xlsx' );
267272
ob_start();
268273
$writer->save( 'php://output' );
269274
$xlsData = ob_get_contents();
270275
ob_end_clean();
271276
} else {
272-
do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, 'Class PHPExcel does not exist!', 'error', __FILE__, __LINE__ );
273-
error_log( 'Class PHPExcel does not exist!' );
277+
do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, 'Class PhpOffice\PhpSpreadsheet\Spreadsheet does not exist!', 'error', __FILE__, __LINE__ );
278+
error_log( 'Class PhpOffice\PhpSpreadsheet\Spreadsheet does not exist!' );
274279
}
275280
return array(
276281
'csv' => 'data:application/vnd.ms-excel;base64,' . base64_encode( $xlsData ),

classes/Visualizer/Render/Sidebar.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ protected function _renderActionSettings() {
231231
$disable_actions
232232
);
233233

234-
$disabled = ! ( class_exists( 'PHPExcel' ) && extension_loaded( 'zip' ) && extension_loaded( 'xml' ) && version_compare( PHP_VERSION, '5.2.0', '>' ) );
234+
$disabled = ! self::is_excel_enabled();
235235
self::_renderCheckboxItem(
236236
esc_html__( 'Excel', 'visualizer' ),
237237
'actions[]',
@@ -251,6 +251,18 @@ protected function _renderActionSettings() {
251251
self::_renderSectionEnd();
252252
}
253253

254+
/**
255+
* Checks if the Excel module can be enabled.
256+
*/
257+
private static function is_excel_enabled() {
258+
$vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload.php';
259+
if ( is_readable( $vendor_file ) ) {
260+
include_once( $vendor_file );
261+
}
262+
263+
return class_exists( 'PhpOffice\PhpSpreadsheet\Spreadsheet' ) && extension_loaded( 'zip' ) && extension_loaded( 'xml' ) && extension_loaded( 'fileinfo' ) && version_compare( PHP_VERSION, '5.6.0', '>' );
264+
}
265+
254266
/**
255267
* Renders chart general settings group.
256268
*

composer.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,13 @@
2323
"require": {
2424
"codeinwp/themeisle-sdk": "master",
2525
"xrstf/composer-php52": "^1.0.20",
26-
"PHPOffice/PHPExcel": "^1.8.1",
26+
"phpoffice/phpspreadsheet": "^1.6.0",
2727
"neitanod/forceutf8": "~2.0"
2828
},
2929
"autoload": {
3030
"files": [
31-
"vendor/codeinwp/themeisle-sdk/load.php"
31+
"vendor/codeinwp/themeisle-sdk/load.php",
32+
"vendor/phpoffice/phpspreadsheet/src/Bootstrap.php"
3233
]
3334
},
3435
"minimum-stability": "dev",

0 commit comments

Comments
 (0)