【问题标题】:Converting scientific number read from excel into csv将从excel读取的科学数字转换为csv
【发布时间】:2017-07-21 00:12:01
【问题描述】:

我在阅读 Excel 表格时遇到问题。我正在 csv 中获取科学格式的条形码值。

如何解析原始值而不是科学数字?

示例: 9,96E+12 [在 excel 中]

9960000000000 [我想要 CSV 格式]

我在 php 中使用 fgetcsv 函数来解析 csv 文件。

while (($row = fgetcsv($handle, 1000, ';')) !== FALSE)
{
    if(!$header)
        $header = $row;
    else
        $data[] = array_combine($header, $row);
}

我得到的输出:

[0] => Array
    (
        [code] => FJT8-thr-thrtC2-VSXL
        [barcode] => 9960000000000
        [amount] => 70
        [status] => 1
    )

我希望输出为

[0] => Array
    (
        [code] => FJT8-thr-thrtC2-VSXL
        [barcode] => 9,96E+12
        [amount] => 70
        [status] => 1
    )

【问题讨论】:

标签: php excel csv


【解决方案1】:

只要将“,”转换为“.”,就可以使用floatval()sprintf函数来回转换。在 PHP 中使用数字之前。

<?php

$start = '9,96E+12';
$str = floatval(str_replace(',','.',$start)); 

// Proof of concept
echo $start."<br />"; // starting off with 9,96E+12
echo $str."<br />"; // Converted number is 9960000000000
echo sprintf('%.2e',$str); // back to scientific number 9.96e+12


?>

【讨论】:

    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多