Excel 中的空白值打印为零
Blank values printing as zero in Excel
我有一份类似于此的报告:
我有一个公式计算代表 1 月到 12 月的单元格的平均值(YEARLY AVERAGE 列)。但是,我不想考虑我们尚未达到的月份。例如formula/code计算平均值:
$objPHPExcel->getActiveSheet()->setCellValue('N' . $i,'=AVERAGE(B' . $i . ':M' . $i .')');
$i
代表我正在迭代以动态填充我的报告的行。为了方便:
$objPHPExcel->getActiveSheet()->setCellValue('N4','=AVERAGE(B4:M4)');
JAN-DEC 报告数据源自我构建的数组,如下所示:
array(12) {
[1]=>
int(0)
[2]=>
int(0)
[3]=>
int(0)
[4]=>
int(0)
[5]=>
int(0)
[6]=>
int(0)
[7]=>
int(0)
[8]=>
int(0)
[9]=>
string(15) "176.80000000000"
[10]=>
string(15) "707.61290322580"
[11]=>
string(0) ""
[12]=>
string(0) ""
}
代表 NOV 和 DEC 的最后两个数组值是 ""
值,但是它们在报告中被打印为零。
我的问题是,这是打印到文档时需要调整的某种格式吗?即:
foreach(range('B','M') as $columnID){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($columnID . $i, round($data[$k],2));
}
或者我是否需要在构建数组时以不同方式存储值?即:
if($m <= (int)$this_month){
$data[$m] = 0;
}
else{
$data[$m] = '';
}
您对
的使用
round($data[$k],2))
会将空字符串转换为浮点数,这就是 round() 所做的
如果您想保留空字符串,则不要尝试四舍五入该值,标准的 PHP 方法是使用 if
测试和四舍五入或不t相应地四舍五入
我有一份类似于此的报告:
我有一个公式计算代表 1 月到 12 月的单元格的平均值(YEARLY AVERAGE 列)。但是,我不想考虑我们尚未达到的月份。例如formula/code计算平均值:
$objPHPExcel->getActiveSheet()->setCellValue('N' . $i,'=AVERAGE(B' . $i . ':M' . $i .')');
$i
代表我正在迭代以动态填充我的报告的行。为了方便:
$objPHPExcel->getActiveSheet()->setCellValue('N4','=AVERAGE(B4:M4)');
JAN-DEC 报告数据源自我构建的数组,如下所示:
array(12) {
[1]=>
int(0)
[2]=>
int(0)
[3]=>
int(0)
[4]=>
int(0)
[5]=>
int(0)
[6]=>
int(0)
[7]=>
int(0)
[8]=>
int(0)
[9]=>
string(15) "176.80000000000"
[10]=>
string(15) "707.61290322580"
[11]=>
string(0) ""
[12]=>
string(0) ""
}
代表 NOV 和 DEC 的最后两个数组值是 ""
值,但是它们在报告中被打印为零。
我的问题是,这是打印到文档时需要调整的某种格式吗?即:
foreach(range('B','M') as $columnID){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($columnID . $i, round($data[$k],2));
}
或者我是否需要在构建数组时以不同方式存储值?即:
if($m <= (int)$this_month){
$data[$m] = 0;
}
else{
$data[$m] = '';
}
您对
的使用round($data[$k],2))
会将空字符串转换为浮点数,这就是 round() 所做的
如果您想保留空字符串,则不要尝试四舍五入该值,标准的 PHP 方法是使用 if
测试和四舍五入或不t相应地四舍五入