【发布时间】:2020-03-09 15:00:33
【问题描述】:
我有一个简单的电子表格,其中的数字格式为文本:
我想使用 PhpSpreadsheet 来确定数字确实被格式化为文本而不是默认的“常规”。所以我这样做:
<?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());
但结果总是这样:
浮点数(12345)
string(7) "一般"
如何判断数字是否格式化为“文本”?
【问题讨论】:
-
作为测试,再次使用 Excel 打开文件,将值从
12345更改为12346,保存文件,然后再次测试。当我这样做时,我得到了正确的结果。 -
@SeanBright 没有帮助,仍然是“一般”。我使用的是 LibreOffice 而不是 MS Office,所以这可能是一个因素。我想看看我是否可以获得 MS Office 的试用版来试用它,但这最终没有用,因为这个问题是基于用户的问题,我不能要求 MS 的软件。
-
同意,我只是告诉你什么对我有用。在
PHPOffice/PhpSpreadsheet存储库中有 a now closed issue 让我走上了这条路。
标签: php spreadsheet phpspreadsheet