PhpSpreadsheet - 获取 d/m/Y 日期的原始字符串值,而不是转换为 float

标签 php excel spreadsheet phpspreadsheet

我正在尝试读取具有 03/05/2008 格式的 Excel 文件,但是当我使用 PhpSpreadsheet 读取时,它会返回 2008.0

有没有办法获取列的原始字符串格式而不是转换为 float ?

try {
    $inputFileType = IOFactory::identify($path);

    try {
        $reader = IOFactory::createReader($inputFileType);
        $reader->setReadDataOnly(true);
        $valuesSpreadsheet = $reader->load($path);

        try {
           $spreadsheetArr = $valuesSpreadsheet->getActiveSheet()->toArray();
           dd($spreadsheetArr);
        }
     }
}

编辑:我不想获取特定的单元格并将其转换为时间戳,如下面的评论。我想获取数组 ->toArray() 但获取所有原始字符串格式。

最佳答案

在加载数据之前取出 $reader->setReadDataOnly(true) 行,并且值应该正确显示。如果没有,您也可以尝试以下代码。

$path = 'yourPath';

try {
    $inputFileType = \PhpOffice\PhpSpreadsheet\IOFactory::identify($path);

    try {
        $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);       
        $valuesSpreadsheet = $reader->load($path);

        try {
           $spreadsheetArr = $valuesSpreadsheet->getActiveSheet()->toArray(null, null, true, true);
           print '<pre>' . print_r($spreadsheetArr, 1) . '</pre>';
        } catch (Exception $e) {
            echo $e . PHP_EOL;
        }
     } catch (Exception $e) {
        echo 'Unable to load file ' . $path . PHP_EOL;
        echo $e . PHP_EOL;
     }
} catch (Exception $e) {
    echo 'Unable to locate file ' . $path . PHP_EOL;
    echo $e . PHP_EOL;
}

关于PhpSpreadsheet - 获取 d/m/Y 日期的原始字符串值,而不是转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55250892/

相关文章:

php - 这个错误说明了什么?隐藏类的对象无法转换为字符串

php - PDO fetchColumn 未返回正确的行数

vba - 为什么应用程序级别的 SelectionChange 事件不起作用?

python - 如何更改 Python 代码中的单元格格式?

php - 我可以以编程方式创建 PHP 对象引用链吗?

php - 没有方法重载的 PHP 中的抽象工厂

c# - 使用 EPPlus 复制/克隆 Excel 形状?

vba - 引用最近添加的工作表

google-sheets - 更新行时获取电子邮件用户值

Ruby Gem 电子表格 - 格式问题