PHP导出HTML也与数据

我有以下代码。 如果不在页面中添加任何html标签,它将数据导出为ex​​cel。 当我在页面中添加html标签时,也会导出标签。 我只想导出数据。 我将有下拉和用户input的文本框。 代码如下

<?php ?> <html> <head> <h1> this is heading will display when page load</h1> <head> <body> <p> user inputs </p> <?PHP *** sql connection string omit....*** $filename = "website_data_" . date('Ymd') . ".xls"; header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=\"" . $filename . "\""); $flag = false; $result = mysql_query("SELECT trandate,price FROM price") or die('Query failed!'); while(false !== ($row = mysql_fetch_assoc($result))) { if(!$flag) { // display field/column names as first row echo implode("\t", array_keys($row)) . "\n"; $flag = true; } echo implode("\t", array_values($row)) . "\n"; } ?> </body> </html> 

在客户端机器上input以下内容后,excel的错误消失了。

解决此问题的最简单方法是插入以下registry项。 这将抑制通知:

 [HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security] “ExtensionHardening”=dword:00000000 

分步说明如下:

  1. 单击开始,单击运行,键入regedit.exe,然后按ENTER键。 这将打开您的registry
  2. 导航到HKEY_CURRENT_USER \ SOFTWARE \ MICROSOFT \ OFFICE \ 12.0 \ EXCEL \ SECURITY
  3. 右键单击右边的窗口,selectNew – > DWORD
  4. 在名称字段中,input“ExtensionHardening”(不带引号)
  5. 确认数据的值为“0”

我build议上述步骤来解决这个问题,尽pipe事实上它是快速和肮脏的。

你可以保存你的数据文件,并提供简单的redirect

 <?php ?> <html> <head> <h1> this is heading will display when page load</h1> <head> <body> <p> user inputs </p> <?PHP *** sql connection string omit....*** $filename = "website_data_" . date('Ymd') . ".xls"; $filedata = ''; $flag = false; $result = mysql_query("SELECT trandate,price FROM price") or die('Query failed!'); while(false !== ($row = mysql_fetch_assoc($result))) { if(!$flag) { // display field/column names as first row $filedata .= implode("\t", array_keys($row)) . "\n"; $flag = true; } $filedata .= implode("\t", array_values($row)) . "\n"; } file_put_contents($filename, $filedata); echo '<meta http-equiv="refresh" content="0;url=' . $filename . '"'; ?> </body> </html> 

这是一个简单的解决scheme:

将PHP代码放在另一个名为“excel.php”的文件中将其添加到文件的顶部:

 <?php header('Content-type: application/ms-excel'); header('Content-Disposition: attachment; filename=excel.xls'); 

然后添加一个从现有文件到这个文件的链接:

 <a href="excel.php">Download</a> 

试试这个脚本,这对我有用

 <form action="itemexcel.php" method="post" onsubmit='$("#datatodisplay").val( $("<div>") .append( $("#ReportTable").eq(0).clone() ).html() )'> <table id="ReportTable" width="781" border="2"> Or <div id id="ReportTable"> <tr> <td><input type="hidden" id="datatodisplay" name="datatodisplay"></td> <td><input class="bg" type="submit" value="Export To Excel"></td> </tr></table></div> <input type="hidden" id="datatodisplay" name="datatodisplay"> <input class="bg" type="submit" value="Export To Excel"> 

itemexcel页面

 <?php header('Content-Type: application/force-download'); header('Content-disposition: attachment; filename=guestexcel.xls'); // Fix for crappy IE bug in download. header("Pragma: "); header("Cache-Control: "); echo $_REQUEST['datatodisplay']; ?>