Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Phpspreadsheet Laravel Package

phpoffice/phpspreadsheet

PhpSpreadsheet is a pure-PHP library for reading and writing spreadsheet files (Excel, LibreOffice Calc, and more). Create, edit, and export workbooks with rich formatting, formulas, and multiple formats via a clean, well-documented API.

View on GitHub
Deep Wiki
Context7

Configuration Settings

Once you have included the PhpSpreadsheet files in your script, but before instantiating a Spreadsheet object or loading a workbook file, there are a number of configuration options that can be set which will affect the subsequent behaviour of the script.

Cell collection caching

By default, PhpSpreadsheet holds all cell objects in memory, but you can specify alternatives to reduce memory consumption at the cost of speed. Read more about memory saving.

To enable cell caching, you must provide your own implementation of cache like so:

$cache = new MyCustomPsr16Implementation();

\PhpOffice\PhpSpreadsheet\Settings::setCache($cache);

Language/Locale

Some localisation elements have been included in PhpSpreadsheet. You can set a locale by changing the settings. To set the locale to Brazilian Portuguese you would use:

$locale = 'pt_br';
$validLocale = \PhpOffice\PhpSpreadsheet\Settings::setLocale($locale);
if (!$validLocale) {
    echo 'Unable to set locale to ' . $locale . " - reverting to en_us" . PHP_EOL;
}
  • If Brazilian Portuguese language files aren't available, then Portuguese will be enabled instead
  • If Portuguese language files also aren't available, then the setLocale method will return false, and American English (en_us) settings will be used throughout.

More details of the features available once a locale has been set, including a list of the languages and locales currently supported, can be found in Locale Settings for Formulas.

Additional localization elements (currency code, thousands separator, and decimal separator) are available in PhpOffice\PhpSpreadsheet\Shared\StringHelper:

StringHelper::setCurrencyCode('€');
StringHelper::setThousandsSeparator('.');
StringHelper::setDecimalSeparator(',');

You can use the Php function setLocale to try to set these values without knowing beforehand what symbols are needed.

StringHelper::setCurrencyCode(null);
StringHelper::setThousandsSeparator(null);
StringHelper::setDecimalSeparator(null);
$result = setLocale(LC_ALL, 'pt_br.UTF-8');

However, this function maintains its information at the process level, not the thread level, and its use is therefore discouraged.

A less-troublesome replacement is available starting with PhpSpreadsheet 5.4.

$result = StringHelper::setLocale('pt_br'); // will restore defaults if argument is null

This will set the locale and the 3 StringHelper values all at once. It requires the Intl extension, which is not a requirement for PhpSpreadsheet as a whole. For that reason, it returns a boolean result, which will be false if Intl is not available, or if it does not consider the supplied locale to be valid.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport