Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将XLSX转换为JSON_Php_Json_Excel - Fatal编程技术网

Php 将XLSX转换为JSON

Php 将XLSX转换为JSON,php,json,excel,Php,Json,Excel,我正在编写一个脚本,基本上将excel文件转换为JSON。该文件是一个巨大的预算,有数百行。我使用PHPExcel库将xlsx文件转换为csv文件。然后我将excel文件转换为json,但收到一个错误: 警告:array_combine():两个参数的元素数应相等 这是我的密码 <?php ini_set('memory_limit', '1000M'); require_once 'classes/PHPExcel/IOFactory.php'; $excel = PHPExcel

我正在编写一个脚本,基本上将excel文件转换为JSON。该文件是一个巨大的预算,有数百行。我使用PHPExcel库将xlsx文件转换为csv文件。然后我将excel文件转换为json,但收到一个错误:

警告:array_combine():两个参数的元素数应相等

这是我的密码

<?php

ini_set('memory_limit', '1000M');

require_once 'classes/PHPExcel/IOFactory.php';

$excel = PHPExcel_IOFactory::load("sap.xlsx");
$writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
$writer->setDelimiter(",");
$writer->setEnclosure("");
$writer->setLineEnding("\r\n");
$writer->setSheetIndex(0);
$writer->save("sap.csv");


function getJsonFromCsv($file,$delimiter) { 
    if (($handle = fopen($file, 'r')) === false) {
        die('Error opening file');
    }

    $headers = fgetcsv($handle, 4000, $delimiter);
    $csv2json = array();

    while ($row = fgetcsv($handle, 4000, $delimiter)) {
      $csv2json[] = array_combine($headers, $row);
    }

    fclose($handle);
    return json_encode($csv2json); 
}

$file = 'sap.csv';
echo getJsonFromCsv($file, ',');

你有没有研究过像或这样可以直接将XLSX转换为JSON的工具?@Nirk是的,我看到过这个解决方案。我正在寻找一个PHP解决方案。你知道我在哪里可以找到这方面的文档吗,我对javascript不太熟悉。如果你安装nodejs并从npm安装
j
模块,它会安装
j
命令行工具。一旦安装了它,就可以通过在PHP中运行
passthru(“j-jsap.xlsx”)
来获取JSON