0

15 列と 248 行を含む Excel ファイルがあります。このExcelファイルのデータをデータベースに挿入したい。この目的のために、PHPExcel スクリプトを選択します。このスクリプトを使用して、14 列のデータをデータベース テーブルに正常に挿入しました。ただし、各セルの html タグまたはコードに含まれる 15 列の名前「説明」。他の 14 列に沿ってアップロードしようとすると、248 ではなく 92 レコードしか挿入されません。15 列がないと、他の 248 行が正常に挿入されます。コードを共有しています。どこに問題があるか教えてください。ありがとう

>include($HTTP_SERVER_VARS["DOCUMENT_ROOT"]."/my_session.php");<br>
>require_once($HTTP_SERVER_VARS["DOCUMENT_ROOT"]."/includes/Classes/PHPExcel/IOFactory.php");

>$filetype = $_FILES["file"]["type"];<br>
$filename = $_FILES["file"]["name"];<br>
$filetmp = $_FILES["file"]["tmp_name"];<br>
$Ext = strrchr($filename,".");<br>
//set_time_limit(3000);

>$objReader = new PHPExcel_Reader_CSV();<br>
$objPHPExcel = $objReader->load("ebay.csv");<br>

>foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {<br>
    $worksheetTitle     = $worksheet->getTitle();<br>
    $highestRow         = $worksheet->getHighestRow(); <br>
    $highestColumn      = $worksheet->getHighestColumn(); <br>
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);<br>
    $nrColumns = ord($highestColumn) - 64; <br>
>for ($row=2; $row<=$highestRow; $row++) {<br>
        $item_name = $worksheet->getCellByColumnAndRow(3, $row)->getValue();<br>
        $condition = $worksheet->getCellByColumnAndRow(4, $row)->getValue();<br>
        $Category = $worksheet->getCellByColumnAndRow(7, $row)->getValue();<br>
        $Quantity = $worksheet->getCellByColumnAndRow(11, $row)->getValue();<br>
        $StartPrice = $worksheet->getCellByColumnAndRow(14, $row)->getValue();<br>
        $BuyItNowPrice = $worksheet->getCellByColumnAndRow(15, $row)->getValue();<br>
        $Duration = "365";<br>
        $ItemID = $worksheet->getCellByColumnAndRow(29, $row)->getValue();<br>
        $objPHPExcel->getActiveSheet()->getCell('A1')->getValue();<br>
        $PostageServices1 = $worksheet->getCellByColumnAndRow(95, $row)->getValue();<br>
        $PostageCost1 = $worksheet->getCellByColumnAndRow(96, $row)->getValue();<br>
        $PostageServices2 = $worksheet->getCellByColumnAndRow(101, $row)->getValue();<br>
        $PostageCost2 = $worksheet->getCellByColumnAndRow(102, $row)->getValue();<br>
        $PostageServices3 = $worksheet->getCellByColumnAndRow(106, $row)->getValue();<br>
        $PostageCost3 = $worksheet->getCellByColumnAndRow(107, $row)->getValue();<br>
        $DispatchTimeMax = $worksheet->getCellByColumnAndRow(122, $row)->getValue();<br>
        $ReturnsAcceptedOption = $worksheet->getCellByColumnAndRow(195, $row)->getValue();<br>
        $AdditionalDetails = $worksheet->getCellByColumnAndRow(202, $row)->getValue();<br>
        $item_description = stripslashes($worksheet->getCellByColumnAndRow(30, $row)->getValue());<br>

>insertInto("INSERT INTO mytable (`item_name`,`condition`,`Category`,`Quantity`,`StartPrice`,`BuyItNowPrice`,`Duration`,`item_code`,`PostageServices1`,`PostageCost1`,`PostageServices2`,`PostageCost2`,`PostageServices3`,`PostageCost3`,`DispatchTimeMax`,`ReturnsAcceptedOption`,`AdditionalDetails`) VALUES ('$item_name','$condition','$Category','$Quantity','$StartPrice','$BuyItNowPrice','$Duration','$ItemID','$PostageServices1','$PostageCost1','$PostageServices2','$PostageCost2','$PostageServices3','$PostageCost3','$DispatchTimeMax','$ReturnsAcceptedOption','$AdditionalDetails')");
}
}<br>

説明セルには、テーブル、p、b フォントなどの html 要素が含まれています。各 Excel セルは重いため、html を処理する適切な方法が必要です。このhtmlセルデータを処理し、Excelから取得して最初から最後までデータベースに挿入するphpexcelの関数またはメソッドはありますか? はいの場合、少なくとも 1 つの例を教えてください。

4

1 に答える 1

0

Description が単に html マークアップを含むテキスト文字列であることが確実な場合は、それをエスケープする (または準備済みステートメントを使用する) 必要があります。これは、文字列に引用符を含めることができるためであり、データベースでテキスト文字列を使用する場合は常に標準的な方法であり、PHPExcel とは関係ありません。

于 2012-04-28T22:32:52.763 に答える