Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPExcel在列和单元格中打印_Php_Mysql_Phpexcel - Fatal编程技术网

PHPExcel在列和单元格中打印

PHPExcel在列和单元格中打印,php,mysql,phpexcel,Php,Mysql,Phpexcel,我是PHPexcel的新手,尝试从数据库中获取数据并在自己的列中打印id和title值,但现在它只是这样打印,我希望每个值都在每个单元格中: 以下是excel的外观: 代码: 问题是如果使用setCellValue,$col必须是字符-要使用数字,可以使用SetCellValueByColumnRow,例如:- $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col,$rowNumber,$cell); 或者

我是PHPexcel的新手,尝试从数据库中获取数据并在自己的列中打印id和title值,但现在它只是这样打印,我希望每个值都在每个单元格中:

以下是excel的外观:

代码:


问题是如果使用setCellValue,$col必须是字符-要使用数字,可以使用SetCellValueByColumnRow,例如:-

$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col,$rowNumber,$cell);
或者,您可以使用以下函数将$col转换为字符:-

function num2alpha($n)
{
    for($r = ""; $n >= 0; $n = intval($n / 26) - 1)
        $r = chr($n%26 + 0x41) . $r;
    return $r;
}
然后像以前一样叫它:-

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

谢谢,成功了。但现在我无法在excel中获取id。只有标题。你还在循环前设置$col='A'吗?如果是,则将其设置为0。如果已更新代码,请将其更改为0。但是我想在它自己的列中打印id值,在它自己的列中打印title值。左侧显示它现在的样子,右侧显示我希望它的样子:您正在调用$objWriter->setDelimiter(“”);但您正在输出到CSV。CSV需要一个分隔符,否则字段将一起运行,所以只需删除这一行。我将它设置为(,),但这并没有使id和标题出现在每一列中。你能帮我解决这个问题吗?代替你的代码> NUM2ALPH()/CUT>,考虑使用PHPExcel的内置<代码> PHPExcel文件::StrugFieldCopyNoNoxx()/<代码>方法,但是为什么要为CSV设置定界符为<代码> '/COD>?以及附件至
。。。。。这可能是问题的原因:如果必须更改分隔符,请至少将其更改为有效字符,如
“\t”
,当生成的文件加载到MS Excel中时,仍能识别该字符。将其更改为“\t”,请参见编辑。这就是它的样子。在一个牢房里。我希望它把id放在一列,标题放在另一列。我真的不明白您的读者在做什么:您正在生成一个完全有效的CSV文件(如果您在文本编辑器中打开它,您可以自己查看),但Excel根本无法正确读取它。。。。在使用PHPExcel时,您是否尝试过使用Excel5或Excel2007编写器而不是CSV?
$col = 0;
foreach($row as $cell) {
  $objPHPExcel->getActiveSheet()->setCellValue(num2alpha($col).$rowNumber,$cell);
  $col++;
}
$rowNumber++;