16 'Xlsx' => Reader\Xlsx::class,
17 'Xls' => Reader\Xls::class,
18 'Xml' => Reader\Xml::class,
19 'Ods' => Reader\Ods::class,
20 'Slk' => Reader\Slk::class,
21 'Gnumeric' => Reader\Gnumeric::class,
22 'Html' => Reader\Html::class,
23 'Csv' => Reader\Csv::class,
27 'Xls' => Writer\Xls::class,
28 'Xlsx' => Writer\Xlsx::class,
29 'Ods' => Writer\Ods::class,
30 'Csv' => Writer\Csv::class,
31 'Html' => Writer\Html::class,
32 'Tcpdf' => Writer\Pdf\Tcpdf::class,
33 'Dompdf' => Writer\Pdf\Dompdf::class,
34 'Mpdf' => Writer\Pdf\Mpdf::class,
46 if (!isset(self::$writers[$writerType])) {
51 $className = self::$writers[$writerType];
53 return new $className($spreadsheet);
65 if (!isset(self::$readers[$readerType])) {
70 $className = self::$readers[$readerType];
72 return new $className();
82 public static function load($pFilename)
84 $reader = self::createReaderForFile($pFilename);
86 return $reader->load($pFilename);
98 $reader = self::createReaderForFile($pFilename);
99 $className = get_class(
$reader);
100 $classType = explode(
'\\', $className);
103 return array_pop($classType);
118 $guessedReader = self::getReaderTypeFromExtension(
$filename);
119 if ($guessedReader !== null) {
120 $reader = self::createReader($guessedReader);
130 foreach (self::$readers as
$type => $class) {
132 if (
$type !== $guessedReader) {
153 if (!isset($pathinfo[
'extension'])) {
157 switch (strtolower($pathinfo[
'extension'])) {
196 if (!is_a($writerClass, Writer\IWriter::class,
true)) {
197 throw new Writer\Exception(
'Registered writers must implement ' . Writer\IWriter::class);
200 self::$writers[$writerType] = $writerClass;
211 if (!is_a($readerClass, Reader\IReader::class,
true)) {
212 throw new Reader\Exception(
'Registered readers must implement ' . Reader\IReader::class);
215 self::$readers[$readerType] = $readerClass;
static static static createWriter(Spreadsheet $spreadsheet, $writerType)
Create Writer.
static registerReader($readerType, $readerClass)
Register a reader with its type and class name.
static getReaderTypeFromExtension($filename)
Guess a reader type from the file extension, if any.
static load($pFilename)
Loads Spreadsheet from file using automatic Reader resolution.
static createReader($readerType)
Create Reader.
Factory to create readers and writers easily.
static createReaderForFile($filename)
Create Reader for file using automatic Reader resolution.
static registerWriter($writerType, $writerClass)
Register a writer with its type and class name.
static identify($pFilename)
Identify file type using automatic Reader resolution.
static assertFile($filename)
Assert that given path is an existing file and is readable, otherwise throw exception.