Экспорт данных MySQL в Excel в PHP

Я пытаюсь получить данные MySQL в файл Excel, но у меня проблемы с ячейками Excel. Весь мой текст отправляется в одну ячейку, я хотел бы иметь каждое значение строки в отдельной ячейке Excel. Вот мой код:

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

  • Как сравнить два массива и удалить соответствующие элементы из одного для следующего цикла?
  • лицензии и защиты php script
  • Лучший способ обработки больших XML в PHP
  • Возможно ли, что выражение в объявлении массива ... возможно?
  • Как определить, открывают ли пользователь две вкладки для одного сеанса?
  • Как я могу получить IP-адрес пользователя в PHP?
  • Как преобразовать файл excel в базу данных mysql?
  • DOMDocument :: load - PHP - Получение значения атрибута
  • PHP импортирует Excel в базу данных (xls & xlsx)
  • Каков наилучший способ генерировать excel-выход в PHP?
  • Экспорт данных MYSQL в Excel / CSV через php
  • Преобразование Word doc, docx и Excel xls, xlsx в PDF с PHP
  • 10 Solutions collect form web for “Экспорт данных MySQL в Excel в PHP”

    Просто попробуйте следующее:

    Часть PHP:

     <?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"; } ?> 

    Я думаю, что это может помочь вам решить вашу проблему.

    Попробуйте этот код. Это определенно работает.

     <?php // Connection $conn=mysql_connect('localhost','root',''); $db=mysql_select_db('excel',$conn); $filename = "Webinfopen.xls"; // File Name // Download file header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: application/vnd.ms-excel"); $user_query = mysql_query('select name,work from info'); // Write data to file $flag = false; while ($row = mysql_fetch_assoc($user_query)) { if (!$flag) { // display field/column names as first row echo implode("\t", array_keys($row)) . "\r\n"; $flag = true; } echo implode("\t", array_values($row)) . "\r\n"; } ?> 

    PHPExcel – ваш друг. Очень проста в использовании и работает как шарм.

    https://github.com/PHPOffice/PHPExcel

    Я думаю, вы должны попробовать с этим API

    http://code.google.com/p/php-excel/source/browse/trunk/php-excel.class.php

    С этим

     Create a quick export from a database table into Excel Compile some statistical records with a few calculations and deliver the result in an Excel worksheet Gather the items off your (web-based) todo list, put them in a worksheet and use it as a foundation for some more statistics magic.** 

    Попробуйте этот код:

     <?php header("Content-type: application/vnd-ms-excel"); header("Content-Disposition: attachment; filename=hasil-export.xls"); include 'view-lap.php'; ?> 

    Если вы просто хотите, чтобы ваши данные запроса сбрасывались в excel, я должен это делать часто, а использование html-таблицы – очень простой метод. Я использую mysqli для запросов db и следующий код для экспорта в excel:

     header("Content-Type: application/xls"); header("Content-Disposition: attachment; filename=filename.xls"); header("Pragma: no-cache"); header("Expires: 0"); echo '<table border="1">'; //make the column headers what you want in whatever order you want echo '<tr><th>Field Name 1</th><th>Field Name 2</th><th>Field Name 3</th></tr>'; //loop the query data to the table in same order as the headers while ($row = mysqli_fetch_assoc($result)){ echo "<tr><td>".$row['field1']."</td><td>".$row['field2']."</td><td>".$row['field3']."</td></tr>"; } echo '</table>'; 

    Сообщения от Джона Питера и Дилепа курахе помогли мне разработать то, что я считаю более простым и чистым решением, на всякий случай, если кто-то еще смотрит. (Я не показываю код базы данных, потому что на самом деле я использовал переменную $ _SESSION.)

    Вышеупомянутые решения неизменно вызывали ошибку при загрузке в Excel, а расширение не соответствовало типу форматирования. Некоторые из этих решений создают электронную таблицу с данными на странице в столбцах, где было бы более традиционным иметь заголовки столбцов и перечислять данные по строкам. Итак, вот мое простое решение:

     $filename = "webreport.csv"; header("Content-Type: application/xls"); header("Content-Disposition: attachment; filename=$filename"); header("Pragma: no-cache"); header("Expires: 0"); foreach($results as $x => $x_value){ echo '"'.$x.'",' . '"'.$x_value.'"' . "\r\n"; } 
    1. Измените на .csv (какой Excel мгновенно обновляется до .xls и при загрузке нет ошибки).
    2. Используйте запятую как разделитель.
    3. Двойная цитата Ключ и значение, чтобы избежать каких-либо запятых в данных.
    4. Я также добавил заголовки столбцов в $results чтобы таблица выглядела еще лучше.

    Попробуйте следующий код. просто обновите только два значения.
    1.your_database_name 2.table_name

      <?php $host="localhost"; $username="root"; $password=""; $dbname="your_database_name"; $con = new mysqli($host, $username, $password,$dbname); $sql_data="select * from table_name"; $result_data=$con->query($sql_data); $results=array(); filename = "Webinfopen.xls"; // File Name // Download file header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: application/vnd.ms-excel"); $flag = false; while ($row = mysqli_fetch_assoc($result_data)) { if (!$flag) { // display field/column names as first row echo implode("\t", array_keys($row)) . "\r\n"; $flag = true; } echo implode("\t", array_values($row)) . "\r\n"; } ?> 

    Это новая версия php-кода

     $servername = "localhost"; $username = "root"; $password = ""; $dbname = "your_dbname"; //mysql and db connection $con = new mysqli($servername, $username, $password, $dbname); if ($con->connect_error) { //error check die("Connection failed: " . $con->connect_error); } else { } $DB_TBLName = "your_table_name"; $filename = "excelfilename"; //your_file_name $file_ending = "xls"; //file_extention header("Content-Type: application/xls"); header("Content-Disposition: attachment; filename=$filename.xls"); header("Pragma: no-cache"); header("Expires: 0"); $sep = "\t"; $sql="SELECT * FROM $DB_TBLName"; $resultt = $con->query($sql); while ($property = mysqli_fetch_field($resultt)) { //fetch table field name echo $property->name."\t"; } print("\n"); while($row = mysqli_fetch_row($resultt)) //fetch_table_data { $schema_insert = ""; for($j=0; $j< mysqli_num_fields($resultt);$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"; } 

    попробуйте этот код

    data.php

      <table border="1"> <tr> <th>NO.</th> <th>NAME</th> <th>Major</th> </tr> <?php //connection to mysql mysql_connect("localhost", "root", ""); //server , username , password mysql_select_db("codelution"); //query get data $sql = mysql_query("SELECT * FROM student ORDER BY id ASC"); $no = 1; while($data = mysql_fetch_assoc($sql)){ echo ' <tr> <td>'.$no.'</td> <td>'.$data['name'].'</td> <td>'.$data['major'].'</td> </tr> '; $no++; } ?> 

    код для файла excel

    export.php

     <?php // The function header by sending raw excel header("Content-type: application/vnd-ms-excel"); // Defines the name of the export file "codelution-export.xls" header("Content-Disposition: attachment; filename=codelution-export.xls"); // Add data table include 'data.php'; ?> 

    если версия mysqli

     $sql="SELECT * FROM user_details"; $result=mysqli_query($conn,$sql); if(mysqli_num_rows($result) > 0) { $no = 1; while($data = mysqli_fetch_assoc($result)) {echo ' <tr> <<td>'.$no.'</td> <td>'.$data['name'].'</td> <td>'.$data['major'].'</td> </tr> '; $no++; 

    http://codelution.com/development/web/easy-ways-to-export-data-from-mysql-to-excel-with-php/

    PHP is the Best Programming Language in the world.