Exportation de données MySQL à Excel en PHP
Que j'essaie de faire mes données MySQL vers un fichier Excel, mais je vais avoir des problèmes avec des cellules Excel. Tout mon texte va à une cellule, je voudrais avoir chaque ligne de la valeur dans Excel distinct de la cellule. Voici mon code:
$queryexport = ("
SELECT username,password,fullname FROM ecustomer_users
WHERE fk_customer='".$fk_customer."'
");
$row = mysql_fetch_assoc($queryexport);
$result = mysql_query($queryexport);
$header = '';
for ($i = 0; $i < $count; $i++){
$header .= mysql_field_name($result, $i)."\t";
}
while($row = mysql_fetch_row($result)){
$line = '';
foreach($row as $value){
if(!isset($value) || $value == ""){
$value = "\t";
}else{
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
$data = str_replace("\r", "", $data);
if ($data == "") {
$data = "\nno matching records found\n";
}
}
header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: attachment; filename=exportfile.xls");
header("Pragma: no-cache");
header("Expires: 0");
//output data
echo $header."\n".$data;
mysql_close($conn);`
- Pas liés à votre question, mais vous devriez vraiment utiliser un tableau pour construire les lignes de votre fichier. Ensuite vous avez juste à utiliser les
implode
pour coller les éléments entre eux. Cela vous évite les tracas d'avoir à vérifier si votre ligne actuelle de la mémoire tampon est vide ou non lorsque vous voulez ajouter le délimiteur. - pourquoi utiliser imploser? PHP fournit la fonction intégrée fputcsv() pour l'écriture d'un fichier CSV/TSV/etc fichiers
- merci pour le heads-up, PHP n'est pas de ma compétence principale, donc je ne connais pas cette fonction.
Vous devez vous connecter pour publier un commentaire.
Essayez La Suivante :
PHP Partie :
Je pense que cela peut vous aider à résoudre votre problème.
SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
Essayer ce code. C'est définitivement de travail.
PHPExcel est votre ami. Très facile à utiliser et fonctionne comme un charme.
https://github.com/PHPOffice/PHPExcel
Si vous voulez que vos données de la requête sous-évaluées dans excel que j'ai à faire, fréquemment, et à l'aide d'un tableau html est une méthode très simple. J'utilise mysqli pour les requêtes db et le code suivant pour les exportations vers excel:
Je pense que vous devriez essayer avec cette API
http://code.google.com/p/php-excel/source/browse/trunk/php-excel.class.php
Avec Cette
Essayez ce code:
C'est la nouvelle version de php code
essayer ce code
data.php
code pour le fichier excel
export.php
si mysqli version
http://codelution.com/development/web/easy-ways-to-export-data-from-mysql-to-excel-with-php/
De messages par Jean-Pierre et Dileep kurahe m'a aidé à développer ce que je considère comme étant un moyen plus simple et plus propre solution, juste au cas où quelqu'un d'autre est toujours à la recherche. (Je ne donne pas de code de base de données parce que j'ai effectivement utilisé un $_SESSION variable).
Les solutions ci-dessus, invariablement, a provoqué une erreur lors du chargement dans Excel, à propos de l'extension ne correspond pas au type de mise en forme. Et certaines de ces solutions créer une feuille de calcul avec les données de la page dans les colonnes où il serait plus traditionnelles d'avoir des en-têtes de colonne et de dresser la liste des données dans les rangées. Donc, voici ma solution simple:
$results
de sorte que la feuille de calcul avait l'air encore plus agréable.Essayez le Code Suivant s'il vous Plaît.
juste mettre à jour uniquement les deux valeurs.
1.your_database_name
2.table_name
Vous pouvez exporter les données de MySQL vers Excel en utilisant ce code simple.
code complet ici php exporter vers excel