簡體   English   中英

使用PHPExcel導出時,MySQL數據僅在一列中顯示

[英]MySQL data to Excel only in one column when exporting using PHPExcel

我正在嘗試使用PHPExcel將數據從MySQL分離到excel文件。 我希望數據按行分隔。
例如,
詳細1響應1狀態1
詳細信息2響應2狀態2
詳細3響應3狀態3

數據的分隔符為||。 每行的分隔符為::

這是數據 在此處輸入圖片說明

這是我的代碼:

<?php 


try {

$sql = "SELECT ID,DESCRIPTION FROM SAMPLE";


} catch (Exception $ex) {
          echo 'Message: ' .$ex->getMessage();
  }  

   $connect = @mysql_connect($dbhost, $dbuser, $dbpass) 

or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno()); 
//select database 
$Db = @mysql_select_db($dbname, $connect) 
or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno()); 
//execute query 
$result = @mysql_query($sql,$connect) 
or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno()); 

error_reporting(E_ALL);


require_once 'Classes/PHPExcel.php';

// Execute the database query
// Instantiate a new PHPExcel object 
$objPHPExcel = new PHPExcel();  
// Set the active Excel worksheet to sheet 0 
$objPHPExcel->setActiveSheetIndex(0); 

$rowCount = 2;


$objPHPExcel->getActiveSheet()->setCellValue('A1', 'ID');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'DESCRIPTION');

 while($row = mysql_fetch_array($result)){  

$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['ID']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['DESCRIPTION']);

    }


header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="SampleExcel.xls"'); 
header('Cache-Control: max-age=0'); 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
$objWriter->save('php://output');

?>

更新資料

我現在在如何解決問題上有進步:)我已經使用MySQL查詢創建分隔符,並且我的數據現在放置在行中。

結果 在此處輸入圖片說明

現在,我現在想用定界符“ ||”將它們分開。 你能幫我嗎?

這是我的查詢:

SELECT SUBSTRING_INDEX(SELECT sample.id, SUBSTRING_INDEX(SUBSTRING_INDEX(sample.DESCRIPTION, '::', numbers.n), '::', -1) as name FROM numbers INNER JOIN sample ON CHAR_LENGTH(sample.DESCRIPTION) -CHAR_LENGTH(REPLACE(sample.DESCRIPTION, '::', ''))>=numbers.n-1,'||'-2) as string

我看不到您要在哪里增加變量$rowCount

您應該編寫++$rowCount; 在while循環的末尾。

while($row = mysql_fetch_array($result)) {  
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['ID']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['DESCRIPTION']);

++$rowCount;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM