簡體   English   中英

在PHPExcel上發布.csv文件

[英]Issue on .csv files on PHPExcel

我在讀取.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文件,我得到了我想要的所需輸出。

這很好用:

$objReader->setDelimiter("\t"); 

但是,當你不是100%確定它的標簽或逗號是否分開時,似乎無法添加兩個例如$objReader->setDelimiter("\\t",); 這是必需的。 當您打開Excel並轉到導入CSV時,實際的屏幕上的步驟允許您指定多個分隔符,這將是很酷的。

這是你正在使用PHP Office的東西嗎?

另外,這里有兩個鏈接,可幫助您使用PHP查找文件是否以逗號,制表符或管道分隔 - 安靜一個聰明的解決方案:

如何找出csv文件字段是否以制表符分隔或以逗號分隔

我該如何檢測文本文件中使用的分隔符?

這對我有用:

        $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

那么文件中的分隔符是什么? 它是逗號,分號,標簽還是別的什么?

PHPExcel還沒有自動檢測模式,因此除非您指定要使用的分隔符和附件,否則它將默認為逗號分隔符和雙引號(“)附件。如果您的文件使用制表符或半冒號,或者將某個其他字符作為分隔符,然后您需要手動告訴CSV讀取器使用哪個字符,否則它會將該行視為單個單元格。

閱讀器的用戶文檔的一部分專門用於解釋CSV文件的這些選項(見第4.6節)。

請注意,我的目標邏輯是從#phpnw13黑客馬拉松中的文件本身“最佳猜測”分隔符和機箱值,但在此之前,如果不是默認值,則需要手動指定

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM