0

我想使用 PHPExcel 将 CSV 文件加载到我的 Mysql 数据库中,这是我的代码:

$inputFileName = '/tmp/charges1.csv';
            //PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_MyValueBinder());
            try {
                $inputFileType = PHPExcel_IOFactory::identify($inputFileName);


                $objReader = PHPExcel_IOFactory::createReader($inputFileType);
                if ($inputFileType == 'CSV') {
                    $objReader->setDelimiter(get_csv_delimiter($inputFileName));
                }
                $objPHPExcel = $objReader->load($inputFileName);

            } catch (Exception $e) {
                die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . $e->getMessage());
            }

            //  Get worksheet dimensions
            $sheet = $objPHPExcel->getSheet(0);
            $highestRow = $sheet->getHighestRow();
            $highestColumn = $sheet->getHighestColumn();

            //  Loop through each row of the worksheet in turn
            $charges = new srvmgr_charges();
            for ($row = 1; $row <= $highestRow ; $row++) {
                //  Read a row of data into an array

                $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
                    NULL,
                    TRUE,
                    FALSE);
                //  Insert row data array into your database of choice here
                $rowData = $rowData[0];
                print_r($rowData);

                if (
                    (is_double($rowData[$format->date]) && $rowData[$format->date] >= 41395) ||
                    (is_string($rowData[$format->date]) && strtotime($rowData[$format->date]) !== false)
                ) {
                    $charges->date = date('Y-m-d', (is_double($rowData[$format->date])) ? PHPExcel_Shared_Date::ExcelToPHP($rowData[$format->date]) : strtotime($rowData[$format->date]));
                    $charges->description = $rowData[$format->reference];
                    $charges->amount = $rowData[$format->amount];
                    $charges->idgroup = $idgroup;
                    $charges->SaveNew();
                }


            }

有一个字段“参考”应该是一长串数字,但是当我得到该行时,它被解释为指数格式的双精度,这里是 print_r 结果:

    Array
(
    [0] => 2014-09-07
    [1] => some text
    [2] => some text
    [3] => some text
    [4] => 5,40
    [5] => some text
    [6] => some text
    [7] => some text
    [8] => some text
    [9] => some text
    [10] => 8.2014191065639E+17 ===> should be "820141910656393488"
    [11] => some text
)

如何将此值读取为字符串

4

0 回答 0