jasneet bhatia
jasneet bhatia

Reputation: 87

conversion of xlsx into csv not work on server

I want to import the data from xlsx file into my database for this i used phpexcel library to convert xls or xlsx file into csv and then read data. This code is working properly to convert xls file into csv on local-host and server both but xlsx to csv conversion is done only on local-host. here is my code:

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);


 }

and call this function using:

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) 

please help

Upvotes: 3

Views: 400

Answers (1)

sandip kakade
sandip kakade

Reputation: 1356

Try this

$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++;
    }

Upvotes: 2

Related Questions