2014-04-26 3 views
1

PHPexcel을 처음 사용하여 데이터베이스에서 데이터를 가져 와서 ID와 제목 값을 자체 열에 인쇄하려고했지만 지금은 그냥 이렇게 인쇄하고 있습니다. 각 값을 넣고 싶습니다. 각 셀 :열과 셀에 PHPExcel 인쇄

이 엑셀 보이는 방법입니다

enter image description here

코드 :

<?php 

error_reporting(E_ALL); 
$username="root"; 
$password=""; 
$database="nih_bw"; 
$sqlsrv="localhost"; 
date_default_timezone_set('US/Central'); 
$currenttime=date("m-d-Y"); 

require_once '../Classes/PHPExcel.php'; 
$objPHPExcel = new PHPExcel(); 
$objPHPExcel->getProperties(); 

function num2alpha($n) 
{ 
    for($r = ""; $n >= 0; $n = intval($n/26) - 1) 
     $r = chr($n%26 + 0x41) . $r; 
    return $r; 
} 

$viewinv = mysql_connect($sqlsrv,$username,$password); 
if (!$viewinv) { die('Could not connect to SQL server. Contact administrator.'); } 
mysql_select_db($database, $viewinv) or die('Could not connect to database. Contact administrator.'); 
$query = "select id, title from measurements;"; 
$result = mysql_query($query); 

if ($result = mysql_query($query) or die(mysql_error())) { 
    $objPHPExcel = new PHPExcel(); 
    $objPHPExcel->getActiveSheet()->setTitle('CYImport'.$currenttime.''); 

$rowNumber = 1; 
$headings = array('id','Title'); 
$objPHPExcel->getActiveSheet()->fromArray(array($headings),NULL,'A'.$rowNumber); 
$rowNumber++; 
while ($row = mysql_fetch_row($result)) { 
    $col = '0'; 
    foreach($row as $cell) { 

    $objPHPExcel->getActiveSheet()->setCellValue(num2alpha($col).$rowNumber,$cell); 
     $col++; 
    } 
    $rowNumber++; 
} 


    $objWriter = new PHPExcel_Writer_CSV($objPHPExcel); 

$objWriter->setDelimiter("\t"); 
$objWriter->setEnclosure(''); 
$objWriter->setLineEnding("\r\n"); 
$objWriter->setSheetIndex(0); 
$objWriter->save('blah '.$currenttime.'.csv'); 


    header('Content-type: text/csv'); 
    header('Content-Disposition: attachment;filename="CY Import '.$currenttime.'"..csv"'); 
    header('Cache-Control: max-age=0'); 

    $objWriter->save('php://output'); 
    exit(); 
} 
echo 'Contact your Administrator. No data received from server.'; 

?> 
+0

을()', PHPExcel에 내장 된 PHPExcel_Cell :: stringFromColumnIndex()''방법 –

+0

그런데 왜 당신이 설정하는 구분 기호를 사용하는 것을 고려 CSV는''''? 그리고 엔클로저를''''.....''에 넣으십시오. 이것은 문제의 가능한 원인입니다 : 구분 기호를 변경해야한다면, 적어도 "\ t"'와 같은 유효한 문자로 바꾸십시오. 생성 된 파일이 MS Excel에로드 될 때 인식됩니다. –

+0

"\ t"로 변경되었습니다 (편집 참조). 이것이 보이는 방법입니다. 하나의 세포에서. 나는 이드를 한 컬럼에 넣고 다른 한 컬럼에 넣기를 원한다. https://www.dropbox.com/s/y9fk125v1z34gzs/howitlooks.png – user3270211

답변

3

문제는 그 $의 안부가 charac이어야한다입니다 TER는 setCellValue를 사용하는 경우 - 번호를 사용하는 당신은, 대신 setCellValueByColumnAndRow을 사용할 수 있습니다 예를 들면 : -

$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col,$rowNumber,$cell); 

은 또한 아래의 함수를 사용하여 문자로 $의 안부를 변환 할 수 있습니다 : -

function num2alpha($n) 
{ 
    for($r = ""; $n >= 0; $n = intval($n/26) - 1) 
     $r = chr($n%26 + 0x41) . $r; 
    return $r; 
} 

및 그 전에로 전화 : -하는 대신`num2alpha의

$col = 0; 
foreach($row as $cell) { 
    $objPHPExcel->getActiveSheet()->setCellValue(num2alpha($col).$rowNumber,$cell); 
    $col++; 
} 
$rowNumber++; 
+0

감사합니다. 하지만 지금은 이드가 뛰어나지 못하고 있습니다. 제목 만. – user3270211

+0

여전히 루프 앞에 $ col = 'A'가 설정되어 있습니까? 그렇다면 0으로 설정하십시오 –

+0

내 코드를 업데이트했습니다. 0으로 변경하십시오.하지만 id 값은 자체 열에 표시하고 제목 값은 고유합니다. 왼쪽에서 어떻게 보이는지 오른쪽에서 어떻게 보이는지 보여줍니다. https://www.dropbox.com/s/mi7becx85610rln/howIwant.png – user3270211