使用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时如何避免大数的科学记数法的主要内容,如果未能解决你的问题,请参考以下文章