将使用 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 表的高效方法