PHPEXCEL在单行中获取mysql列名

时间:2014-10-21 12:44:43

标签: php phpexcel

我正在处理应用程序,用户上传文件(任何格式),我的应用程序根据其使用情况处理它并下载它。

我想在单行中添加mysql的列名,但它们如下:


移动
城市
米克9XXXXXXXX艾哈迈达巴德

我的代码如下:

$result=mysql_query("SELECT * from test_excel") or die(mysql_error());

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);

$row=1;

$q = mysql_query("SHOW COLUMNS FROM test_excel");
if (mysql_num_rows($q) > 0) {
    while ($row_q = mysql_fetch_assoc($q)) {
        $col='A';
        $objPHPExcel->getActiveSheet()->SetCellValue($col.$row, $row_q['Field']);
        $col++;
    }
    $row++;
    }

while($row_data1 = mysql_fetch_assoc($result)){
    $col=0;
    foreach($row_data1 as $key=>$value){
        $objPHPExcel->getActiveSheet()->SetCellValueByColumnAndRow($col, $row, $value);
        $col++;
    }
    $row++;
}

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="file.xls"');
$objWriter->save('php://output');

请纠正我的错误。

PB

1 个答案:

答案 0 :(得分:1)

您正在每个循环中将列重置为A.将其更改为:

if (mysql_num_rows($q) > 0) {
    $col='A';
    while ($row_q = mysql_fetch_assoc($q)) {
        $objPHPExcel->getActiveSheet()->SetCellValue($col.$row, $row_q['Field']);
        $col++;
    }
    $row++;
}

此外,您不应该使用mysql函数,因为它们已过时。请改为mysqliPDO