PHP экспорт HTML также с данными - PullRequest
0 голосов
/ 20 февраля 2011

У меня есть следующий код.Он экспортирует данные в Excel, если не добавляет HTML-тег на страницу.Когда я добавляю тег html на страницу, он также экспортирует тег.Я хотел бы экспортировать только данные.У меня будет выпадающий и текстовое поле для ввода пользователя.Код как под

<?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>

Ответы [ 4 ]

2 голосов
/ 06 апреля 2011

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

Самый простой способ решить эту проблему - вставить следующий раздел реестра. Это подавит уведомление:

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

Пошаговые инструкции:

  1. Нажмите Пуск, нажмите Выполнить, введите regedit.exe и нажмите клавишу ВВОД. Это откроет ваш реестр
  2. Перейдите к HKEY_CURRENT_USER \ SOFTWARE \ MICROSOFT \ OFFICE \ 12.0 \ EXCEL \ SECURITY
  3. Щелкните правой кнопкой мыши в правом окне и выберите New -> DWORD
  4. В поле Имя введите «ExtensionHardening« (без кавычек)
  5. Убедитесь, что данные имеют значение «0»

Я советую описанные выше шаги для решения проблемы, несмотря на то, что она быстрая и грязная.

1 голос
/ 20 февраля 2011

Вы можете сохранить свои данные в файл и дать простое перенаправление

<?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>
0 голосов
/ 02 мая 2013

попробуйте этот скрипт, и он работает для меня

<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 Page

<?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'];
?>
0 голосов
/ 21 февраля 2011

Вот простое решение:

Поместите код PHP в другой файл с именем «excel.php». Добавьте это в начало файла:

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

Затем добавьте ссылку из существующего файла в этот файл:

<a href="excel.php">Download</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...