首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fputcsv显示前导零

fputcsv显示前导零
EN

Stack Overflow用户
提问于 2012-06-18 15:28:38
回答 4查看 10.3K关注 0票数 11

我使用PHP脚本从结果集查询生成excel CSV文件。一切正常,但是当我读取我的excel文件时,我不能显示前导零。

这是我的代码:

代码语言:javascript
复制
$rows = $this->Query($sql);

$filename = "/www/zendsvr/htdocs/Project/public/report.xls";
$realPath = realpath( $filename );

$filename = realpath( $filename );
$handle = fopen( $filename, "w" );
$finalData = array();

for( $i = 0; $i < count( $rows ); $i++ ) {
    $finalData[] = array( utf8_decode( $rows[$i]->CODE ) );
}

foreach ( $finalData AS $finalRow ) {
    fputcsv( $handle, $finalRow, "\t" );
}

fclose( $handle );

如果我创建一个$finalData[]var_dump(),我会看到正确的值,例如'000198','000199','000200‘,但是在我的XLS文件中相同的值是198,199,200

如何在XLS文件中也显示前导零?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-18 15:46:51

您的数据已正确保存,这是Excel谁在试图变得聪明。

使用Excel导入数据向导,而不是直接打开文件(如有必要,请将.csv文件重命名为.txt )。在导入向导中,选择列的数据类型为"text“而不是"general":

票数 5
EN

Stack Overflow用户

发布于 2016-02-17 03:15:20

添加到DemoUser的方法中:

但是,\t方法在我身上只做了一点小小的改动。

代码语言:javascript
复制
$column_data = "\t000543";

添加\t解决了我让前导零消失的问题,即使CSV是正确的,而excel是“错误的”,\t在Excel中显示时仍然保持前导零不变。

票数 24
EN

Stack Overflow用户

发布于 2020-02-29 23:14:54

令我惊讶的是,这么多年来,没有人提出一个可行的解决方案。

以下是对我有效的方法:

代码语言:javascript
复制
$records = [
    ['name' => 'John', 'phone' => '01234567'],
    ['name' => 'Jane', 'phone' => '01234569'],
];

$file = fopen('php://output', 'w');

fputcsv($file, ['Name', 'Phone N°']);

foreach ($records as $record) {
    fputcsv($file, [$record['name'], "=\"" . $record['phone'] . "\""]);
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11078531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档