使用php和pear写入excel时如何避免大数的科学记数法

Posted

技术标签:

【中文标题】使用php和pear写入excel时如何避免大数的科学记数法【英文标题】:How to avoid scientific notation for large numbers while writing into excel with php and pear 【发布时间】:2014-06-02 12:39:58 【问题描述】:

我正在使用 pear 包和 php 将数据从 mysql 写入 Excel 表。 在 mysql 表中,我有一个名为 EAN 的列。它的值是一个 13 位数字。 当我尝试运行程序时,所有列数据都正确显示, 但是这个 14 位数字的显示就像科学记数法 4.04623E+12。 原始号码是 4046228004518。我正在使用下面的代码行。

$worksheet->write($i, 2, $sel_row['EAN']);

【问题讨论】:

是的,它正在工作,但默认情况下它会显示所有哈希符号,如###########。双击单元格后显示原始数字。 这取决于您的 PHP 到 Excel 引擎是否也可以将格式信息写入单元格。 Excel 允许数字长达 15 位十进制数字,因此您传递的值不会受到影响。它们只是这样显示。 【参考方案1】:

尝试在值前写一个撇号 (')。它将强制 Excel 将值显示为文本,因此不会将其转换为科学计数法。

【讨论】:

它显示 '4046228004518 像这样,在生成此 excel 表后,他们需要将此 excel 表上传到另一个数据库,因此不应使用单引号。【参考方案2】:

我对 spring & apache poi 有同样的问题。 这个解决方案对我有用 -

XSSFCellStyle numeric = (XSSFCellStyle) wb.createCellStyle();
numeric.setDataFormat(workbook.createDataFormat().getFormat("0"));
cell.setCellValue([large number]); //4046228004518
cell.setCellStyle(numeric);

【讨论】:

以上是关于使用php和pear写入excel时如何避免大数的科学记数法的主要内容,如果未能解决你的问题,请参考以下文章

PHP导出100万数据到excel

如何避免大数的科学记数法?

php PECL与PEAR区别

Azure 云服务 PHP Pear 包

下载时PHP生成的Excel文件不同

php怎么导出大量数据的Excel