mysql数据只能在一列中导出到excel

wgeznvg7  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(359)

我正在尝试使用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 query创建了一个分隔符,我的数据现在被放置在行中。
结果

现在,我想用分隔符“| |”来分隔它们。你能帮我吗?
我的问题是:

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
f4t66c6m

f4t66c6m1#

我看不出你在哪里增加变量 $rowCount .
你应该写信 ++$rowCount; 在你的while循环的末尾。

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

++$rowCount;
}

相关问题