首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在通过php导出到excel文件时保持mysql数据的格式

如何在通过php导出到excel文件时保持mysql数据的格式
EN

Stack Overflow用户
提问于 2014-12-24 14:33:41
回答 2查看 2.1K关注 0票数 0

我正在导出MySql数据到excel文件使用一个非常简单的php代码,但我面临着一个非常恼人的问题,在excel数据。我可以处理所有数据,只有一列除外,它作为varchar存储在MySQL中,并包含帐号。它通常以0000111122356、0002345679855、025478961694等前导零开始。当我将相同的数据导出到excel时,它去掉了前导零,我得到了111122356,2345679855,25478961694等等,这对我来说是不能接受的。我的php代码用于导出excel文件-

代码语言:javascript
复制
include('db_connect.php');

$export = mysql_query('Select name, address, bank, bank_account from users') ;

$fields = mysql_num_fields ( $export );

//with database field names
for ( $i = 0; $i < $fields; $i++ ) {
$header .= mysql_field_name( $export , $i ) . "\t";
}

while( $row = mysql_fetch_row( $export ) ) {
$line = '';
//for each field in the row
foreach( $row as $value ) {
    //if null, create blank field
    if ( ( !isset( $value ) ) || ( $value == "" ) ){
        $value = "\t";
    }
    //else, assign field value to our data
    else {
        $value = str_replace( '"' , '""' , $value );
        $value = '"' . $value . '"' . "\t";
    }
    //add this field value to our row
    $line .=  $value;
}
//trim whitespace from each row
$data .= trim( $line ) . "\n";
}
//remove all carriage returns from the data
$data = str_replace( "\r" , "" , $data );

$file_name = 'excel_data' ;
//create a file and send to browser for user to download
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: filename=".$file_name.".xls");
print "$header\n$data";

MySQL表格格式-

代码语言:javascript
复制
id(int) name(varchar) address(varchar) bank bank_account(varchar)
1       abd           delhi            0000111122356  
2       xyz           delhi            0002345679855
3       pqr           delhi            025478961694

谁能建议我在我的代码中的一些修改和技巧来处理这种情况。我需要导出相同的数据,其中存储在mysql没有和更改。

EN

回答 2

Stack Overflow用户

发布于 2014-12-24 16:02:59

我建议使用一个库来创建像PHP Excel这样的Excel文件,并在将任何值放入其中之前将文档的单元格格式化为文本,如果它们被格式化为数字,那么excel将去掉零。

票数 0
EN

Stack Overflow用户

发布于 2015-02-20 20:37:07

在导出到excel之前,请尝试在具有前导零的单元格前面放置撇号(')。这样,Excel应该将其解释为文本。3.我还没有试过,但我认为值得一试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27632594

复制
相关文章

相似问题

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