为什么 PhpSpreadSheet 会像小数一样读几千?
Why is PhpSpreadSheet reading thousands like decimals?
我正在尝试使用以下方法从 .xlsx 文件的公式中读取数字:
$value1 = number_format($spreadsheet->getActiveSheet()->getCell('T63')->getOldCalculatedValue(), 0);
然后,我想将该值插入 mysql 数据库,但我不能,原因如下。例如,如果单元格 T63 的值为 1234,则 getOldCalculatedValue() returns 1,234 和 mysql 会将其读取为双精度值。所以我需要在没有逗号的情况下获得该值。有什么模式可以做吗?
PD:我已经探索了所有这些,但它对我不起作用:
$spreadsheet->getActiveSheet()->getStyle('T63')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT);
我也试过这个:
$value1 = str_replace(',', '.', number_format($spreadsheet->getActiveSheet()->getCell('T63')->getOldCalculatedValue(), 0));
您可以删除 number_format
以检索不带分隔符的号码:
例如变化
// output: 1,234
$value1 = number_format($spreadsheet->getActiveSheet()->getCell('T63')->getOldCalculatedValue(), 0);
至
// output: 1234
$value1 = $spreadsheet->getActiveSheet()->getCell('T63')->getOldCalculatedValue();
我正在尝试使用以下方法从 .xlsx 文件的公式中读取数字:
$value1 = number_format($spreadsheet->getActiveSheet()->getCell('T63')->getOldCalculatedValue(), 0);
然后,我想将该值插入 mysql 数据库,但我不能,原因如下。例如,如果单元格 T63 的值为 1234,则 getOldCalculatedValue() returns 1,234 和 mysql 会将其读取为双精度值。所以我需要在没有逗号的情况下获得该值。有什么模式可以做吗?
PD:我已经探索了所有这些,但它对我不起作用:
$spreadsheet->getActiveSheet()->getStyle('T63')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT);
我也试过这个:
$value1 = str_replace(',', '.', number_format($spreadsheet->getActiveSheet()->getCell('T63')->getOldCalculatedValue(), 0));
您可以删除 number_format
以检索不带分隔符的号码:
例如变化
// output: 1,234
$value1 = number_format($spreadsheet->getActiveSheet()->getCell('T63')->getOldCalculatedValue(), 0);
至
// output: 1234
$value1 = $spreadsheet->getActiveSheet()->getCell('T63')->getOldCalculatedValue();