将值导出为Excel文件格式

你好,我无法从一个数组导出值为例如如何导出以下内容:

echo "<table ' border='1' >" echo "<th>ComputerName</th>")); echo "<th>SerialNumber</th>"; echo "<th>SystemModel</th>"; echo "<th>DateTime</th>"; echo "<th>Software</th>"; echo "<th>Hardware</th>"; echo "<th>Support</th>"; echo "<th>Delete</th>"; echo "</tr>"; $alt_color = 0; while($row = mysql_fetch_array($result)) { error_reporting (E_ALL ^ E_NOTICE); //foreach( $array_values as $value ) $bgc = ( $alt_color % 2 ? 'Dark' : 'Light' ); echo "<tr class=".$bgc.">"; //echo "<td><a href=\"update.php?LSUserID=" .$row['LSUserID']."\">" .$row['LSUserID']."</a></td>"; echo "<td><a href=\"update.php?LSUserID=" .$row['LSUserID']."\">" .$row['ComputerName']."</a></td>"; echo "<td>" . $row['SerialNumber'] . "</td>"; echo "<td>" . $row['SystemModel'] . "</td>"; echo "<td>" . $row['DateTime'] . "</td>"; 

您将需要适当的头文件(下面的文件来自PHP文档中的示例 )

 $export = "my_name.xls"; header('Pragma: public'); ///////////////////////////////////////////////////////////// // prevent caching.... ///////////////////////////////////////////////////////////// // Date in the past sets the value to already have been expired. header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); header('Last-Modified: '.gmdate('D, d MYH:i:s') . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1 header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1 header ("Pragma: no-cache"); header("Expires: 0"); ///////////////////////////////////////////////////////////// // end of prevent caching.... ///////////////////////////////////////////////////////////// header('Content-Transfer-Encoding: none'); // This should work for IE & Opera header('Content-Type: application/vnd.ms-excel;'); // This should work for the rest header("Content-type: application/x-msexcel"); header('Content-Disposition: attachment; filename="'.basename($export).'"'); 

之后,你的代码应该可以进行一些修改(Excel可以读取HTML结构):

 error_reporting (E_ALL ^ E_NOTICE); // you shouldn't have that in the loop. // you actually should put this first echo "<table >" // the rest of your table opening code. $alt_color = 0; while($row = mysql_fetch_array($result)) { echo "<tr>"; // the rest of your columns. echo "</tr>"; } echo "</table>"; 

如果这不起作用,出于某种原因,那么你可以创build一个CSV,但你需要担心逃脱它:

 // add all of the headers. echo '"ComputerName","SerialNumber","SystemModel",'; //etc for all columns. // row makes sure that there is only one set of values. $row = mysql_fetch_row($result); if( !$row ) die(); // no value found. exit. echo getCSVRow( $row ); do // do...while lets us handle the \n more gracefully. { echo "\n". getCSVRow( $row ); } while ($row = mysql_fetch_row($result)); function getCSVRow( array $row ) { $ret = ""; foreach( $row as $val ) $ret .= '"' . escapeCSV( $val ) . '",'; return sustr( $ret, 0, strlen( $ret ) ); // clear the tailing comma } function escapeCSV( $str ) { return str_replace( '"', '\"', $str ); } 

您可以使用php-excel库在Excel中读取和写入数据。 find下面的链接:

我发现一个重要的启发来自Google AppInventor的工具,用于在PHP / mySQL环境中创build数据库导出。 检查网站: http : //www.freegroup.de/software/phpBlocks/demo.html

使用phpBlock,您可以在拖放环境中创build您的db-> excel导出,这受到来自MIT的OpenBlock或Google的AppInventor的启发。 这意味着没有必要在PHP中编写任何代码。

但是导出function只是php-lib的一种可能性。 您可以将此lib用作现有PHP应用程序的dynamic扩展。 像dyn一样。 公式或计算。 我希望这比之前的发布更清晰。