将使用 PHP 创建的 csv 文件导入 Excel 时,如何在数字字符串值中保留前导零?

Posted

技术标签:

【中文标题】将使用 PHP 创建的 csv 文件导入 Excel 时,如何在数字字符串值中保留前导零?【英文标题】:How to keep leading zeroes in numeric string values when a csv file created with PHP is imported to Excel? 【发布时间】:2019-09-01 23:51:51 【问题描述】:

我有一个代码可以创建一个 CSV 文件并将某些数据放入其中。这些数据有些是文本,有些是数字字符串。在 Excel 中导入此 CSV 文件时,程序会从数字字符串(电话号码和邮政编码)中删除前导零。有没有办法可以格式化/更改这些数字字符串值,以便 Excel 可以以保持前导零的方式读取它们?还是只是 Excel 的问题,应该从那里解决这个问题?

我尝试在数字字符串之前添加撇号,数字会在那里,但撇号也会保留,我不希望这样。

$dataorder = ["Receiver:", $_POST['orderperson'], $_POST['address'], $_POST['postnumber'], $_POST['city'], $_POST['email'], $_POST['phone']];

fputcsv($fh, $dataorder, $delimeter);

【问题讨论】:

这是一个excel问题,不是php。使用“从文本导入”命令,将电话号码、邮政编码字段作为文本导入。 在 Excel 中,您添加一个 ' 单引号前缀来告诉 Excel 这是一个文本,即使它包含数字。因此,在将它们写入 csv 文件之前,将 ' 添加到 PHP 中的字段 导入文件时的问题是Excel从一开始就删除了0。将格式更改为文本不会恢复原状。 Riggs,就像我在文中所说的那样,我试过了,但即使没有删除零,我也不希望引号留在那里。 @SalmanA 哦,对了,我没有使用 Power Query 视图,它帮助我在导入之前将字段格式化为文本。谢谢你! 【参考方案1】:

Excel 不知道如何处理仅包含数字的字段,因此它会修剪所有前导零。在 CSV 生成过程中您无能为力。您可以做的是告诉 excel 在导入 CSV 文件时如何处理每个数据列。在第 3 步导入文本数据时(数据选项卡 > 从文本 > 选择 csv 文件),excel 让您选择每个列的数据类型,默认为General;将数字字段更改为Text,它将保留所有前导零。这是文本导入器第 3 步的屏幕截图,它是希腊语,但您会明白的(Γενική -> GeneralΚείμενο -> Text):

【讨论】:

以上是关于将使用 PHP 创建的 csv 文件导入 Excel 时,如何在数字字符串值中保留前导零?的主要内容,如果未能解决你的问题,请参考以下文章

需要通过 PHP 将大型 CSV 文件导入多个 MySQL 表的高效方法

如何将数据从闪亮的应用程序写入exce / csv文件?恰好我想将股票价格值的值写入excel / csv文件

PHP导入导出excel表格图片(转)

PHP - 将 csv 导入数据库数据太长

如何使用codeigniter将csv文件导入mysql

如何使用 PHP CodeIgniter 将 CSV 数据导入 MYSQL 数据库?