Продолжение Excel не может открыть файл, созданный XLSXWriter
test.php
<?php
if(isset($_POST['submit2']) && ($_POST['submit2'] == 'Export'))
{
//db connection
$name = $_POST['name'];
$record = FindName($name);
if(count($record) > 0)
{
[?]
}
}
else
{
?>
<form action="c.php" method="post">
Name: <input type="text" name="name" />
<input type="submit" name="submit2" value="Export" />
</form>
<?php
}
function FindName($name)
{
$query = "SELECT *
FROM user
WHERE Name like '".$name."%'";
$result = mysqli_query($dbc, $query);
$record = array();
while($row = mysqli_fetch_array($result))
{
$record[] = $row;
}
return $record;
}
?>
download.php
<?php
include('./PHP_XLSXWriter-master/xlsxwriter.class.php');
ini_set('display_errors', 0);
ini_set('log_errors', 1);
error_reporting(E_ALL & ~E_NOTICE);
$filename = "example.xlsx";
header('Content-disposition: attachment; filename="'.XLSXWriter::sanitize_filename($filename).'"');
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$header = array(
'ID'=>'string',
'Name'=>'string',
'Age'=>'string',
'Gender'=>'string',
);
for($i = 0; $i < count($record); $i++)
{
$data[$i] = array($record[$i]['ID'],$record[$i]['Name'],$record[$i]['Age'],$record[$i]['Gender']);
}
$writer = new XLSXWriter();
$writer->writeSheet($data,'Sheet1',$header);
$writer->writeToStdOut();
?>
Допустим, я набираю Вонг в текстовом поле и нажимаю кнопку «Экспорт».
После нажатия кнопки экспорта найдите имя, содержащее слово Wong, и экспортируйте данные в excel.
У меня вопрос: как передать переменную $ record в download.php, чтобы экспортировать данные в файл Excel на [?]? Кто-нибудь может мне помочь?
Вместо вашего [?]
, require
файл.
if(count($record) > 0)
{
require "PATH_TO/download.php";
exit; // <- IMPORTANT to add exit
// to not have in download response html data from test.php
}
как переменная $record
уже определено ( $record = FindName($name);
) эта переменная может быть использована в download.php
Других решений пока нет …