2014-12-24 5 views
0

아주 간단한 PHP 코드를 사용하여 MySql 데이터를 엑셀 파일로 내보내는 중 Excel 데이터에서 매우 성가신 문제에 직면하고 있습니다. 나는 varchar로 MySQL에 저장되어있는 하나의 컬럼을 제외한 모든 데이터를 가지고 있으며, no를 포함하고있다. 일반적으로 사용자는 0000111122356, 0002345679855, 025478961694 등과 같은 선행 0으로 시작합니다. 동일한 데이터를 Excel로 내보낼 때 맨 앞의 0이 제거되고 111122356, 2345679855, 25478961694 등의 정보가 표시되어 허용되지 않습니다. 수출에 대한 나의 PHP 코드는 파일을 엑셀 -PHP로 파일을 엑셀로 내보낼 때 mysql 데이터의 형식을 유지하는 방법

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의 테이블 형식 -

id(int) name(varchar) address(varchar) bank bank_account(varchar) 
1  abd   delhi   0000111122356 
2  xyz   delhi   0002345679855 
3  pqr   delhi   025478961694 

사람이 나에게이 상황을 처리하려면 코드의 일부 변경 및 트릭을 제안 해주십시오 수 있습니다. mysql에 저장되어있는 동일한 데이터를 내보내고 변경해야한다.

답변

0

라이브러리를 사용하여 PHP Excel과 같은 Excel 파일을 만들고 문서의 셀을 텍스트로 서식을 지정하여 값을 입력 한 다음 숫자로 서식을 지정하면 Excel에서 0을 제거합니다.

0

엑셀로 내보내기 전에 앞에 0이있는 셀 앞에 아포스트로피 (')를 넣고 입력하십시오. 이 방법으로 Excel은이를 텍스트로 해석해야합니다. havent 직접 시도했지만 생각해볼 가치가있다.

관련 문제