PHPExcel将零输出为空白单元格
我正在构建一个WordPress插件,使用PHPExcel导出学生出勤报告。到目前为止,我能够成功地获取学生数据数组(包括出勤率),并将其转换为电子表格并下载。不幸的是,有一个奇怪的错误:当一个学生参加了零个活动时,电子表格上的单元格是空白的,而不是显示零。我更希望它是一个实际的零,但我找不到一个方法来做到这一点。这是我的剧本:PHPExcel将零输出为空白单元格,php,phpexcel,Php,Phpexcel,我正在构建一个WordPress插件,使用PHPExcel导出学生出勤报告。到目前为止,我能够成功地获取学生数据数组(包括出勤率),并将其转换为电子表格并下载。不幸的是,有一个奇怪的错误:当一个学生参加了零个活动时,电子表格上的单元格是空白的,而不是显示零。我更希望它是一个实际的零,但我找不到一个方法来做到这一点。这是我的剧本: error_reporting( E_ALL); ini_set( 'include_path', ini_get( 'include_path' ).';../Cla
error_reporting( E_ALL);
ini_set( 'include_path', ini_get( 'include_path' ).';../Classes/' );
include 'PHPExcel.php';
include 'PHPExcel/Writer/Excel2007.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex( 0 );
$objPHPExcel->getProperties()->setCreator( $user );
$objPHPExcel->getProperties()->setLastModifiedBy( $user );
$objPHPExcel->getProperties()->setTitle( $title );
$objPHPExcel->getProperties()->setSubject( $title );
$objPHPExcel->getProperties()->setDescription( $title );
$objPHPExcel->getActiveSheet()->fromArray( $data, null, 'A1' );
$objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFont()->setBold(true);
$columns = array( 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' );
foreach ( $columns as $column ) {
$objPHPExcel->getActiveSheet()->getColumnDimension($column)->setAutoSize(true);
} // End $columns foreach
$file_name = str_replace( ' ', '_', $title);
if ( $_POST['type'] == 'spreadsheet' ) {
header( 'Content-type: application/vnd.ms-excel' );
header( 'Content-Disposition: attachment; filename="' . $file_name . '.xls"' );
$objWriter = new PHPExcel_Writer_Excel2007( $objPHPExcel );
$objWriter->save( 'php://output' );
}
$data包含学生信息数组,其结构如下:
Array (
[0] => Array (
[0] => First Name
[1] => Last Name
[2] => BU ID
[3] => Barcode
[4] => Major
[5] => Class
[6] => Seminars
[7] => Showcases
)
[1] => Array (
[first_name] => Seth
[last_name] => Abel
[buid] => B00385307
[barcode] => 100324707
[student_major] => CMM
[class] => MBU2100
[seminar] => 0
[showcase] => 1
)
[2] => Array (
[first_name] => Zachary
[last_name] => Abend
[buid] => B00373103
[barcode] => 100291996
[student_major] => MBU
[class] => MBU2100
[seminar] => 0
[showcase] => 1
)
.
.
.
)
正如您可以看到的示例数据,这些学生每人参加了1次展示,但没有参加任何研讨会。下载此电子表格并在Excel中打开时,1显示良好,但研讨会单元格为空白。由于我正在使用fromArray()函数来填充电子表格,我是否应该做些什么来正确显示这些零?我认为您是这里松散类型比较的受害者-您已将
null
指定为fromArray()
的第二个参数,它表示源数组中代表空白单元格的值。由于null==0
这意味着零将导致空白单元格,除非将第四个参数设置为true
尝试更改:
$objPHPExcel->getActiveSheet()->fromArray( $data, null, 'A1' );
…到
$objPHPExcel->getActiveSheet()->fromArray( $data, null, 'A1', true );
谢谢你,戴夫!我知道这很简单,我就是找不到。谢谢,谢谢,谢谢!!我在网站上的任何地方都找不到这个问题,但是在谷歌上搜索了1秒后,第一个结果是这个问题。我不确定这对StackOverflow是一件好事,还是对PHPExcel的文档是一件坏事。@DaveRandom这对我不起作用。我使用的是phpexcel
1.8。