Skip to content

Commit 36b12bd

Browse files
committed
moved from phpexcel to phpspreadsheet
1 parent 5a98ccb commit 36b12bd

File tree

8 files changed

+126
-84
lines changed

8 files changed

+126
-84
lines changed

DependencyInjection/Configuration.php

100644100755
Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,14 @@ class Configuration implements ConfigurationInterface
1717
*/
1818
public function getConfigTreeBuilder()
1919
{
20-
$treeBuilder = new TreeBuilder();
21-
$rootNode = $treeBuilder->root('hboie_data_io');
20+
if (! method_exists('Symfony\Component\Config\Definition\Builder\TreeBuilder', 'getRootNode')) {
21+
// This is the pre 4.2 way
22+
$treeBuilder = new TreeBuilder('hboie_data_io');
23+
$rootNode = $treeBuilder->root('hboie_data_io');
24+
} else {
25+
$treeBuilder = new TreeBuilder('hboie_data_io');
26+
$rootNode = $treeBuilder->getRootNode();
27+
}
2228

2329
// Here you should define the parameters that are allowed to
2430
// configure your bundle. See the documentation linked above for

Export/ExcelFileCreator.php

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,23 @@
22

33
namespace Hboie\DataIOBundle\Export;
44

5-
use Liuggio\ExcelBundle\LiuggioExcelBundle;
5+
use PhpOffice\PhpSpreadsheet\Spreadsheet;
6+
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
7+
use Yectep\PhpSpreadsheetBundle\Factory;
68
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
9+
use Symfony\Component\HttpFoundation\StreamedResponse;
710

811
class ExcelFileCreator
912
{
1013
/**
11-
* @var \Liuggio\ExcelBundle\Factory
14+
* @var Factory
1215
*/
13-
private $phpExcelFactory;
16+
private $phpSpreadsheetFactory;
1417

1518
/**
16-
* @var \PHPExcel
19+
* @var Spreadsheet
1720
*/
18-
private $phpExcelObj;
21+
private $phpSpreadsheet;
1922

2023
/**
2124
* @var string $phpExcelType
@@ -28,34 +31,37 @@ class ExcelFileCreator
2831
private $sheets;
2932

3033
/**
31-
* ExcelFileLoader constructor.
32-
* @param \Liuggio\ExcelBundle\Factory $phpExcelFactory
34+
* ExcelFileCreator constructor.
35+
* @param $phpSpreadsheetFactory
36+
* @throws \PhpOffice\PhpSpreadsheet\Reader\Exception
3337
*/
34-
public function __construct($phpExcelFactory)
38+
public function __construct($phpSpreadsheetFactory)
3539
{
36-
$this->phpExcelFactory = $phpExcelFactory;
40+
$this->phpSpreadsheetFactory = $phpSpreadsheetFactory;
3741

38-
$this->phpExcelObj = $this->phpExcelFactory->createPHPExcelObject();
39-
$this->phpExcelObj->getProperties()->setCreator("Conet");
42+
$this->phpSpreadsheet = $this->phpSpreadsheetFactory->createSpreadsheet();
43+
$this->phpSpreadsheet->getProperties()->setCreator("OneReporting");
4044
$this->phpExcelType = 'Excel2007';
4145

4246
$this->sheets = array();
4347
}
48+
4449
/**
45-
* @param string $title
46-
* @return \PHPExcel_Worksheet
50+
* @param $title
51+
* @return mixed
52+
* @throws \PhpOffice\PhpSpreadsheet\Exception
4753
*/
4854
public function addSheet($title)
4955
{
5056
$nbOfSheets = count($this->sheets);
5157

5258
if ($nbOfSheets > 0) {
53-
$this->phpExcelObj->createSheet($nbOfSheets);
59+
$this->phpSpreadsheet->createSheet($nbOfSheets);
5460
}
5561

56-
$this->phpExcelObj->setActiveSheetIndex($nbOfSheets);
62+
$this->phpSpreadsheet->setActiveSheetIndex($nbOfSheets);
5763

58-
$activeSheet = $this->phpExcelObj->getActiveSheet();
64+
$activeSheet = $this->phpSpreadsheet->getActiveSheet();
5965
$activeSheet->setTitle($title);
6066

6167
$this->sheets[$nbOfSheets] = $activeSheet;
@@ -64,14 +70,19 @@ public function addSheet($title)
6470
}
6571

6672
/**
67-
* @param string $filename
68-
* @return \Symfony\Component\HttpFoundation\StreamedResponse
73+
* @param $filename
74+
* @return mixed
75+
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
6976
*/
7077
public function getStreamedResponse($filename)
7178
{
72-
$writer = $this->phpExcelFactory->createWriter($this->phpExcelObj, $this->phpExcelType);
79+
$writer = $this->phpSpreadsheetFactory->createWriter($this->phpSpreadsheet, $this->phpExcelType);
7380

74-
$response = $this->phpExcelFactory->createStreamedResponse($writer);
81+
$response = new StreamedResponse(
82+
function () use ($writer) {
83+
$writer->save('php://output');
84+
}
85+
);
7586

7687
$dispositionHeader = $response->headers->makeDisposition(
7788
ResponseHeaderBag::DISPOSITION_ATTACHMENT,

Export/ExcelSheetWriter.php

100644100755
Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,24 @@
22

33
namespace Hboie\DataIOBundle\Export;
44

5-
use Liuggio\ExcelBundle\LiuggioExcelBundle;
6-
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
5+
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
6+
use PhpOffice\PhpSpreadsheet\Worksheet\ColumnIterator;
7+
use PhpOffice\PhpSpreadsheet\Worksheet\RowIterator;
78

89
class ExcelSheetWriter
910
{
1011
/**
11-
* @var \PHPExcel_Worksheet
12+
* @var Worksheet
1213
*/
13-
private $phpExcelSheet;
14+
private $phpWorksheet;
1415

1516
/**
16-
* @var \PHPExcel_Worksheet_ColumnIterator
17+
* @var ColumnIterator
1718
*/
1819
private $colIterator;
1920

2021
/**
21-
* @var \PHPExcel_Worksheet_RowIterator
22+
* @var RowIterator
2223
*/
2324
private $rowIterator;
2425

@@ -28,15 +29,15 @@ class ExcelSheetWriter
2829
private $colIndices;
2930

3031
/**
31-
* ExcelFileLoader constructor.
32-
* @param \PHPExcel_Worksheet $phpExcelSheet
32+
* ExcelSheetWriter constructor.
33+
* @param $phpWorksheet
3334
*/
34-
public function __construct($phpExcelSheet)
35+
public function __construct($phpWorksheet)
3536
{
36-
$this->phpExcelSheet = $phpExcelSheet;
37+
$this->phpWorksheet = $phpWorksheet;
3738

38-
$this->colIterator = $this->phpExcelSheet->getColumnIterator();
39-
$this->rowIterator = $this->phpExcelSheet->getRowIterator();
39+
$this->colIterator = $this->phpWorksheet->getColumnIterator();
40+
$this->rowIterator = $this->phpWorksheet->getRowIterator();
4041
}
4142

4243
/**
@@ -47,7 +48,7 @@ public function addColumn($colName)
4748
$this->colIndices[$colName] = $this->colIterator->key();
4849
$this->colIterator->next();
4950

50-
$this->phpExcelSheet->setCellValue($this->colIndices[$colName] . $this->rowIterator->key(), $colName);
51+
$this->phpWorksheet->setCellValue($this->colIndices[$colName] . $this->rowIterator->key(), $colName);
5152
}
5253

5354
public function setRow($values)
@@ -57,16 +58,19 @@ public function setRow($values)
5758
foreach ($values as $colName => $value) {
5859
if (isset($this->colIndices[$colName])) {
5960
$colKey = $this->colIndices[$colName];
60-
$this->phpExcelSheet->setCellValue($colKey . $this->rowIterator->key(), $value);
61+
$this->phpWorksheet->setCellValue($colKey . $this->rowIterator->key(), $value);
6162
}
6263
}
6364
}
6465

66+
/**
67+
* @throws \PhpOffice\PhpSpreadsheet\Exception
68+
*/
6569
public function closeSheet()
6670
{
6771
foreach ($this->colIndices as $ind) {
68-
$this->phpExcelSheet->getColumnDimension($ind)->setAutoSize(true);
69-
$this->phpExcelSheet->getStyle($ind . '1')->getFont()->setBold(true);
72+
$this->phpWorksheet->getColumnDimension($ind)->setAutoSize(true);
73+
$this->phpWorksheet->getStyle($ind . '1')->getFont()->setBold(true);
7074
}
7175
}
7276
}

Import/ExcelFileLoader.php

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,110 +2,114 @@
22

33
namespace Hboie\DataIOBundle\Import;
44

5-
use Liuggio\ExcelBundle\LiuggioExcelBundle;
5+
use PhpOffice\PhpSpreadsheet\Spreadsheet;
6+
use PhpOffice\PhpSpreadsheet\Worksheet\Iterator;
7+
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
8+
use Yectep\PhpSpreadsheetBundle\Factory;
69
use Hboie\DataIOBundle\Import\ExcelSheetLoader;
710

811
class ExcelFileLoader implements \Iterator
912
{
1013
/**
11-
* @var \Liuggio\ExcelBundle\Factory
14+
* @var Factory
1215
*/
13-
private $phpExcelFactory;
16+
private $phpSpreadsheetFactory;
1417

1518
/**
16-
* @var \PHPExcel
19+
* @var Spreadsheet
1720
*/
18-
private $phpExcelObj;
21+
private $phpSpreadsheet;
1922

2023
/**
21-
* @var \PHPExcel_WorksheetIterator
24+
* @var Iterator
2225
*/
23-
private $phpExcelWorksheetIterator;
26+
private $phpSpreadsheetWorksheetIterator;
2427

2528
/**
2629
* ExcelFileLoader constructor.
27-
* @param \Liuggio\ExcelBundle\Factory $phpExcelFactory
30+
* @param Factory $phpSpreadsheetFactory
2831
*/
29-
public function __construct($phpExcelFactory)
32+
public function __construct($phpSpreadsheetFactory)
3033
{
31-
$this->phpExcelFactory = $phpExcelFactory;
34+
$this->phpSpreadsheetFactory = $phpSpreadsheetFactory;
3235
$this->currentSheetIndex = -1;
3336
}
3437

3538
/**
36-
* open Excel file
37-
* @param string $filename
39+
* @param $filename
40+
* @throws \PhpOffice\PhpSpreadsheet\Reader\Exception
3841
*/
3942
public function openFile($filename)
4043
{
41-
$this->phpExcelObj = $this->phpExcelFactory->createPHPExcelObject($filename);
42-
$this->phpExcelWorksheetIterator = $this->phpExcelObj->getWorksheetIterator();
44+
$this->phpSpreadsheet = $this->phpSpreadsheetFactory->createSpreadsheet($filename);
45+
$this->phpSpreadsheetWorksheetIterator = $this->phpSpreadsheet->getWorksheetIterator();
4346
}
4447

4548
/**
4649
* close file
4750
*/
4851
public function closeFile()
4952
{
50-
$this->phpExcelObj->disconnectWorksheets();
53+
$this->phpSpreadsheet->disconnectWorksheets();
5154
}
5255

5356
/**
5457
* @return int
5558
*/
5659
public function getNbOfSheets()
5760
{
58-
return $this->phpExcelObj->getSheetCount();
61+
return $this->phpSpreadsheet->getSheetCount();
5962
}
6063

6164
/**
62-
* @return \PHPExcel_Worksheet
65+
* @return Worksheet
6366
*/
6467
public function getCurrentWorksheet()
6568
{
66-
return $this->phpExcelWorksheetIterator->current();
69+
return $this->phpSpreadsheetWorksheetIterator->current();
6770
}
6871

6972
/**
70-
* @return ExcelSheetLoader
73+
* @return \Hboie\DataIOBundle\Import\ExcelSheetLoader
74+
* @throws \PhpOffice\PhpSpreadsheet\Exception
7175
*/
7276
public function getCurrentExcelSheetLoader()
7377
{
74-
$ret = new ExcelSheetLoader($this->phpExcelWorksheetIterator->current());
78+
$ret = new ExcelSheetLoader($this->phpSpreadsheetWorksheetIterator->current());
7579
return $ret;
7680
}
7781

7882
public function next()
7983
{
80-
$this->phpExcelWorksheetIterator->next();
84+
$this->phpSpreadsheetWorksheetIterator->next();
8185
}
8286

8387
/**
8488
* @return int
8589
*/
8690
public function key()
8791
{
88-
return $this->phpExcelWorksheetIterator->key();
92+
return $this->phpSpreadsheetWorksheetIterator->key();
8993
}
9094

9195
/**
9296
* @return bool
9397
*/
9498
public function valid()
9599
{
96-
return $this->phpExcelWorksheetIterator->valid();
100+
return $this->phpSpreadsheetWorksheetIterator->valid();
97101
}
98102

99103
public function rewind()
100104
{
101-
$this->phpExcelWorksheetIterator->rewind();
105+
$this->phpSpreadsheetWorksheetIterator->rewind();
102106
}
103107

104108
/**
105-
* @return \PHPExcel_Worksheet
109+
* @return Worksheet
106110
*/
107111
public function current()
108112
{
109-
return $this->phpExcelWorksheetIterator->current();
113+
return $this->phpSpreadsheetWorksheetIterator->current();
110114
}
111115
}

0 commit comments

Comments
 (0)