2017-02-14 8 views
3

xlsxファイルから私のデータベースにデータをインポートしたいのですが、私はphpexcelライブラリを使ってxlsまたはxlsxファイルをcsvに変換してからデータを読み込みました。 このコードは、xlsファイルをローカルホストとサーバの両方でcsvに変換するために正しく動作していますが、xlsxからcsvへの変換はローカルホストでのみ行われます。ここ は私のコードです:xlsxからcsvへの変換はサーバー上では機能しません

function convertXLStoCSV($infile,$outfile) 
{ 

$fileType = PHPExcel_IOFactory::identify($infile); 

$objReader = PHPExcel_IOFactory::createReader($fileType); 

$objReader->setReadDataOnly(true); 
$objPHPExcel = $objReader->load($infile);  

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV'); 
$objWriter->save($outfile); 


} 

と使用してこの関数を呼び出す:

if($ext == 'xls' or $ext == 'xlsx') 
{ 

    $new_doc_name = time() . "." .$ext; 

    $target_path = "../../uploaded_files/"; 
    $target_path = $target_path . $new_doc_name ; 

     if ($_FILES["CSV_file"]["type"] == "application/xls" or $_FILES["CSV_file"]["type"] == "application/xlsx" or $_FILES["CSV_file"]["type"] == "application/vnd.ms-excel" or $_FILES["CSV_file"]["type"] == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"){ 

     if(move_uploaded_file($_FILES['CSV_file']['tmp_name'], $target_path)) { 


     convertXLStoCSV($target_path,'output.csv'); 
     if(($handle = fopen("output.csv" , "r")) !== FALSE) 

+0

を試してみてくださいので、サーバーのログを確認して助けてください。サーバー上のPHPのバージョンが、localhost上で実行しているバージョンと一致していることを確認してください。必要なすべての拡張子があります。 –

答えて

2

この

$objReader = PHPExcel_IOFactory::createReader('Excel2007'); 
    $objPHPExcel = $objReader->load($uploadFIle); 

    $objWorksheet = $objPHPExcel->setActiveSheetIndex(0); 
    $highestRow = $objWorksheet->getHighestRow(); 
    $highestColumn = $objWorksheet->getHighestColumn(); 

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');  
$index = 0; 
    foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { 

     $objPHPExcel->setActiveSheetIndex($index); 

     // write out each worksheet to it's name with CSV extension 
     $outFile = str_replace(array("-"," "), "_", $worksheet->getTitle()) .".csv"; 

     $objWriter->setSheetIndex($index); 
     $objWriter->save($outFile); 

     $index++; 
    } 
+0

はありません。エラーはありません..myコードはローカルホスト上では正しく動作しますが、サーバー上では動作しません。 –

関連する問題