PhpSpreadsheet - 如何确定一个数字是否被格式化为文本?
PhpSpreadsheet - how to determine if a number is formatted as text?
我有一个简单的电子表格,其中的数字格式为文本:
我想使用 PhpSpreadsheet 来确定数字确实被格式化为文本而不是默认的 "General"。所以我这样做:
<?php
use PhpOffice\PhpSpreadsheet\IOFactory;
require 'vendor/autoload.php';
$reader = IOFactory::createReader('Xlsx');
$reader->setReadDataOnly(TRUE);
$cell = $reader->load('index.xlsx')->getActiveSheet()->getCell('A1');
var_dump($cell->getValue(), $cell->getStyle()->getNumberFormat()->getFormatCode());
但结果总是这样:
float(12345)
string(7) "General"
如何判断号码格式是否为"Text"?
你在你的reader代码中写'$reader->setReadDataOnly(True);',这意味着在你的reader代码中读出没有格式化的纯数据.参见 documentation。
请参阅代码的第 5 行。
你应该使用
$reader->setReadDataOnly(FALSE);
你应该能够从 excel 文件中读出格式信息。
$format = $sheet->getStyle("A1")->getNumberFormat()->getFormatCode();
我有一个简单的电子表格,其中的数字格式为文本:
我想使用 PhpSpreadsheet 来确定数字确实被格式化为文本而不是默认的 "General"。所以我这样做:
<?php
use PhpOffice\PhpSpreadsheet\IOFactory;
require 'vendor/autoload.php';
$reader = IOFactory::createReader('Xlsx');
$reader->setReadDataOnly(TRUE);
$cell = $reader->load('index.xlsx')->getActiveSheet()->getCell('A1');
var_dump($cell->getValue(), $cell->getStyle()->getNumberFormat()->getFormatCode());
但结果总是这样:
float(12345)
string(7) "General"
如何判断号码格式是否为"Text"?
你在你的reader代码中写'$reader->setReadDataOnly(True);',这意味着在你的reader代码中读出没有格式化的纯数据.参见 documentation。
请参阅代码的第 5 行。
你应该使用
$reader->setReadDataOnly(FALSE);
你应该能够从 excel 文件中读出格式信息。
$format = $sheet->getStyle("A1")->getNumberFormat()->getFormatCode();