4

.csvファイルの読み取り時に PHPExcel に関する問題が発生しました。

.csv ファイルから値を取得したかったのですが、問題は、単一のセルと見なされる特定の行のデータです。

ここに私のコードがあります:

        include 'Classes/PHPExcel/IOFactory.php';
        $inputFileType = 'CSV';
        $inputFileName = $_FILES['file']['tmp_name'];
        $objReader = PHPExcel_IOFactory::createReader($inputFileType);
        $objPHPExcel = $objReader->load($inputFileName);

        $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);

        $table = "<table border=1><tr><td>first</td><td>middle</td><td>last</td><td>email</td>";

        for ($x = 2; $x <= count($sheetData); $x++){
            foreach ($sheetData[$x] as $data){
                $first = $sheetData[$x]['A'];
                $middle = $sheetData[$x]['B'];
                $last = $sheetData[$x]['C'];
                $email = $sheetData[$x]['D'];   
            }

            $table .= "<tr><td>" . $first ."</td><td>" . $middle . "</td><td>" . $last . "</td><td>" . $email . "</td></tr>";

        }

        $table .= "</table>";

        echo $table;

.xlsおよび.xlsxファイルで動作しており、必要な出力が得られます。

4

3 に答える 3

4

これは私のために働いた:

        $objReader = new PHPExcel_Reader_CSV();
        $objReader->setDelimiter(';');
        $objReader->setEnclosure('');
        $objReader->setLineEnding("\r\n");
        $objReader->setSheetIndex(0);
        $objPHPExcel = $objReader->load($myFile);

詳細https://docs.typo3.org/typo3cms/extensions/phpexcel_library/1.7.4/manual.html#_Toc237519888

于 2016-10-13T16:29:16.867 に答える
1

では、ファイルの区切り記号は何ですか? コンマ、セミコロン、タブ、それ以外ですか?

PHPExcel にはまだ自動検出モードがないため、使用する区切り文字と囲みを指定しない限り、デフォルトでカンマ区切りと二重引用符 (") で囲みます。ファイルでタブまたはセミコロンを使用している場合は、または区切り文字として他の文字を使用する場合は、使用する文字を CSV リーダーに手動で伝える必要があります。そうしないと、行が単一のセルとして扱われます。

CSV ファイルのこれらのオプションを説明することに専念している、読者向けのユーザー ドキュメントのセクション全体があります (セクション 4.6)。

#phpnw13ハッカソンで、ファイル自体からセパレーターとエンクロージャーの値を「最良の推測」するロジックをターゲットにしていることに注意してください。ただし、それまでは、デフォルトでない場合は手動で指定する必要があります

于 2013-09-12T09:41:00.957 に答える