2016-07-01 7 views
-1

exportieren Ich verwendete xlsx und CSV, um Daten zu exportieren, es funktioniert gut für mich, aber haben nur eine Sorge mit der Zeit als Datensätze zu erhöhen, haben wir jetzt 50k + Datensätze und es dauert fast 4-5 Minuten, in Zukunft werden die Aufzeichnungen auf die Zeit des Exports gehen geht weiter, also was kann die beste Lösung sein, um Daten zu exportieren, wird jede Hilfe wirklich geschätzt werdenWas ist der beste Weg, um Daten in csv oder xlsx

Antwort

3

Sie PHPExcel verwenden können. PHPExcel - OpenXML - Lesen, Schreiben und Tabellenkalkulationsdokumente in PHP erstellen - Tabellen Motor

Oder können Sie

PHP Teil verwenden:

<?php 
/*******EDIT LINES 3-8*******/ 
$DB_Server = "localhost"; //MySQL Server  
$DB_Username = "username"; //MySQL Username  
$DB_Password = "password";    //MySQL Password  
$DB_DBName = "databasename";   //MySQL Database Name 
$DB_TBLName = "tablename"; //MySQL Table Name 
$filename = "excelfilename";   //File Name 
/*******YOU DO NOT NEED TO EDIT ANYTHING BELOW THIS LINE*******/  
//create MySQL connection 
$sql = "Select * from $DB_TBLName"; 
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno()); 
//select database 
$Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno()); 
//execute query 
$result = @mysql_query($sql,$Connect) or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());  
$file_ending = "xls"; 
//header info for browser 
header("Content-Type: application/xls");  
header("Content-Disposition: attachment; filename=$filename.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
/*******Start of Formatting for Excel*******/ 
//define separator (defines columns in excel & tabs in word) 
$sep = "\t"; //tabbed character 
//start of printing column names as names of MySQL fields 
for ($i = 0; $i < mysql_num_fields($result); $i++) { 
echo mysql_field_name($result,$i) . "\t"; 
} 
print("\n");  
//end of printing column names 
//start while loop to get data 
    while($row = mysql_fetch_row($result)) 
    { 
     $schema_insert = ""; 
     for($j=0; $j<mysql_num_fields($result);$j++) 
     { 
      if(!isset($row[$j])) 
       $schema_insert .= "NULL".$sep; 
      elseif ($row[$j] != "") 
       $schema_insert .= "$row[$j]".$sep; 
      else 
       $schema_insert .= "".$sep; 
     } 
     $schema_insert = str_replace($sep."$", "", $schema_insert); 
     $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); 
     $schema_insert .= "\t"; 
     print(trim($schema_insert)); 
     print "\n"; 
    } 
?> 
+0

Dank für Ihre Antwort – Nikul

+0

Sie sind willkommen, hoffe, so funktioniert es für Sie. Wenn ja, können Sie meine Antwort richtig und relevant genehmigen. –

1

Komma-getrennte Werte (CSV): Diese Dateien enthalten reinen Text als eine Reihe von Werten (Zellen), die durch Kommata (,) in einer Reihe von Zeilen (Zeilen) getrennt sind. Sie können eine CSV-Datei in einem Texteditor öffnen und selbst lesen. Viele Anwendungen können CSV-Dateien lesen, und viele Sprachen bieten integrierte Funktionen, die das Lesen/Schreiben im CSV-Format vereinfachen.

Excel (dargestellt als XL) (XLS): Es ist eine MS Excel Binärdatei Arbeitsmappe, die Informationen über alle Arbeitsblättern in ein Arbeitsbuch enthält, Inhalt und die Formatierung (Anzahl Maskieren umfaßt, Färbung, bedingte Formatierung usw.), und kann auch Zusätze wie Diagramme, Bilder usw. enthalten. XLS-Dateien können nur von Anwendungen gelesen werden, die speziell zum Lesen ihres Formats geschrieben wurden, und können nur auf die gleiche Weise geschrieben werden.

Also, wenn Sie wollen, um es für Zwecke csv nur als Verwendung zu speichern, für die Formatierung oder andere Prozesse Berechnung .. verwenden XSLX ..

+0

Dank für Ihre Antwort – Nikul