2016-10-13 4 views
0

У меня есть ниже данных в 1-й колонке моего XLS файлаКак прочитать файл XLS и преобразовать его в формат CSV

<table border="1"> 
<tr> 
    <th align="left">First Name</th> 
    <th align="left">Gender</th> 
    <th align="left">Nationality</th> 
</tr> 
<tr> 
    <td align="left">Mike</td> 
    <td align="left">M</td> 
    <td align="left">Singaporean</td> 
</tr> 

Я хотел бы, чтобы преобразовать его в CSV-файл, поэтому выход должен быть в CSV файл

First Name Gender Nationality 
Mike  M  Singaporean 

Я видел alerady https://sourceforge.net/projects/phpexcelreader/

Как достичь с помощью пользовательских PHP скрипт?

ответ

0

Получить данные из файла XLS - $ DataArray Я просто включил функциональность Экспорт

В контроллере

/** Function that is used to do export functionality 
* 
* @return Response 
*/ 
public function exportAction(Request $request) 
{ 
    $delimiter = ''; 

    if ($request->getMethod() == 'POST') { 
     /* Form values */ 
     $csvType = $request->request->get('CSVtype'); 

     /* setting the CSV type delimiter */ 
     $delimiter = ($csvType == "colonSep") ? ";" : ","; 
     /* Ends here */ 

    } 

    $response = $this->createCsvfile($dataArray, $columnNames, $delimiter); 

    return $response; 
} 

/** 
* Function that is used to generate csv data 
* 
* @param Array $dataArray Data array 
* @param Strings $columnNames Column names 
* @param Int  $delimiter Delimiter 

* 
* @return String 
*/ 
private function generateCsv($dataArray, $columnNames, $delimiter) 
{ 
    $delimiter = '"' . $delimiter . '"'; 

    $content = '"' . implode($delimiter, str_replace('"', '', $columnNames)) . '"'; 
    $content .= "\n"; 
    foreach ($dataArray as $value) { 
     $content .= '"' . implode($delimiter, str_replace('"', '', $value)) . '"' . "\n"; 
    } 

    return $content; 
} 



/** 
* To create csv file 
* @param array $finalResultArray selected club  data 
* @param array $columnNames  selected columns 
* @param String $delimiter  delimiter 

* 
* @return \Symfony\Component\HttpFoundation\Response 
*/ 
private function createCsvfile($finalResultArray, $columnNames, $delimiter) 
{ 

    $filename = 'export_' . date("Y-m-d") . '_' . date("H-i-s") . '.csv'; 
    $response = new Response(); 
    // prints the HTTP headers followed by the content 
    $response->setContent(utf8_decode($this->generateCsv($finalResultArray, $columnNames, $delimiter))); 
    $response->setStatusCode(200); 
    $response->headers->set('Content-Type', 'application/csv; charset=utf-8'); 
    $response->headers->set('Content-Disposition', 'attachment; filename="' . $filename . '"'); 
    $response->headers->set('Content-Transfer-Encoding', 'binary'); 

    return $response; 
} 
+0

Привет @missgorge. Кажется, это один из MVC. Не могли бы вы дать мне в corePHP? –

Смежные вопросы