PHP Excel numbers are not fully displayed
In daily work, Excel files are often used for data processing. PHPExcel is a commonly used extension library for PHP to operate Excel files. However, in the process of using PHPExcel, we often encounter the problem of incomplete display of numbers.
This problem occurs due to Excel’s limitations on number formats. The maximum number of digits that Excel can display is 15 digits. When the number of digits exceeds 15, Excel will round off the digits after the number, resulting in incomplete display of the number.
How to solve this problem? Below we will introduce three common solutions.
Method 1: Custom format
Solve the problem of incomplete number display by customizing the number format.
The way to format numbers in PHPExcel is very simple, just use the following code:
$objPHPExcel->getActiveSheet()->getStyle('A1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);
This code sets the number format of cell A1 to keep two decimal places.
If you want to retain more decimal places, you can change the code to:
$objPHPExcel->getActiveSheet()->getStyle('A1')->getNumberFormat()->setFormatCode('0.000000');
So that we can retain six decimal places.
Note: This method is only suitable for numbers with a long decimal part. If the integer part is too long, it will cause the number to become scientific notation.
Method 2: Formatting Numbers
Solve the problem of incomplete number display by formatting numbers.
In PHPExcel, use number_format()
to format numbers into a specified format.
For example:
$num = 1234567890123456.789; $formattedNum = number_format($num, 2, '.', '');
This code will format $num
into a form with two decimal places. When displayed in Excel, it will be: 1,234,567,890,123,460.00.
We can also format numbers into scientific notation in the following ways:
$formattedNum = number_format($num, 0, '.', '');
This code formats $num
into scientific notation, in Excel The display will be: 1.23457E 15.
Method Three: Convert Numbers to Text Format
Solve the problem of incomplete digital display by converting numbers to text format.
In PHPExcel, we can use the following code to convert numbers into text format:
$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', '1234567890123456.789', PHPExcel_Cell_DataType::TYPE_STRING);
This code assigns the string '1234567890123456.789'
to cell A1, And set the cell type to text.
Although this method will convert numbers into text format, it may be affected during data processing, so you need to pay attention.
Summary
The above are three methods to solve the problem of incomplete display of numbers in PHPExcel. We can choose different methods to solve this problem according to the actual situation.
If the decimal part of the number is too long, it is recommended to use a custom format; if the integer part of the number is too long, it is recommended to use the formatted number method; if the number needs to be processed accurately, it is recommended to use the method of formatting the number Convert to text format.
The above is the detailed content of What to do if php excel numbers are not fully displayed. For more information, please follow other related articles on the PHP Chinese website!