Bonjour,
j'ai un problème pour exporter un tableau html (creé par PHP) en Excel!
Avec un script PHP contenant un <form> pour parcourir et séléctioner le fichier à lire. En cliquant sur le boutton le fichier est lu et filtrer comme je veux.
C.à.d.: je lis le fichier temporairement et je le traite directement (sans le copier dans mon Server) à une facon que je lis ligne par ligne, je filtre les lignes que j'en ai besoin, ensuite je partage chaque phrase/ligne voulu pour que je les mettres dans le tableau.
Dans ce resultat il y a un 2ème boutton pour l'éxporter. En cliquant ce 2ème boutton une fenêtre apparait (comme je veux) pour télécharger/sauvegarder ce fichier d'excel, auf que cet Excel est vide:
j'éspère que vous pourriez m'aider!
voici mon code:
1. main page:
<form enctype="multipart/form-data" action="action_browse.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="5000">
Choose a file to upload: <input name="meinedatei" type="file"><br>
<input type="submit" name="SUBMIT" value="upload & filter">
</form>
2. action_browse.php:
<?
if ($_FILES[meinedatei] !="")
{
@copy($_FILES[meinedatei][tmp_name], "./".$_FILES[meinedatei][name]) or die("Couldn't copy the file.");
}
else
{
die(mysql_error());
}
$temp_datei = $_FILES[meinedatei][tmp_name];
$dateiname = $_FILES[meinedatei][name];
echo "temporerer Name mit Pfad: "; print ($temp_datei); echo "<br>";
echo "Dateiname: "; print ($dateiname); echo "<br>";
$path = $_FILES[meinedatei][tmp_name];
$open = fopen($path,"r+");
echo "<form name='exporter' action='export.php' method='post'>
<input type='submit' name='SUBMIT' value='als Excel exportieren'><p>";
echo "<table width='75%' border='1'>
<tr><td></td>
<td bgcolor='#FED2AA' align='center'><b>ACL Name</b></td>
<td bgcolor='#FED2AA' align='center'><b>Rule</b></td>
<td bgcolor='#FED2AA' align='center'><b>Protocol</b></td>
<td bgcolor='#FED2AA' colspan='2' align='center'><b>Source IP / Netmask</b></td>
<td bgcolor='#FED2AA' colspan='2' align='center'><b>Destination IP / Netmask</b></td>
<td bgcolor='#FED2AA' colspan='2' align='center'><b>Service</b></td></tr>";
while(!feof($open))
{
$zeile = fgets($open,255);
$hostname = "/hostname/iU";
$remark = "/remark/iU";
$extended = "/extended/iU";
$permit = "/permit/iU";
$deny = "/deny/iU";
if (preg_match_all($remark,$zeile,$matches,PREG_SET_ORDER))
{
$wort = preg_split("/ /", $zeile, -1, PREG_SPLIT_NO_EMPTY);
echo "<tr><td colspan='10' bgcolor='#DDDDDD' align='left'>$wort[2] $wort[3] $wort[4] $wort[5] $wort[6] $wort[7] $wort[8] $wort[9] $wort[10]</td></tr>";
}
//ASA
elseif (preg_match_all($extended,$zeile,$matches,PREG_SET_ORDER))
{
$i++;
$wort = preg_split("/ /", $zeile, -1, PREG_SPLIT_NO_EMPTY);
if ("$wort[5]" == "$wort[6]")
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8] $wort[9]</td></tr>";
elseif ("$wort[5]" == "any")
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8]</td>
<td bgcolor='#AFAFEF'>$wort[9] $wort[10]</td></tr>";
elseif ("$wort[7]" == "any")
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8]</td>
<td bgcolor='#AFAFEF'>$wort[9] $wort[10]</td></tr>";
else
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8]</td>
<td bgcolor='#AFAFEF'>$wort[9]</td>
<td bgcolor='#AFAFEF'>$wort[10] $wort[11]";
}
//PIX
elseif (preg_match_all($permit,$zeile,$matches,PREG_SET_ORDER))
{
$i++;
$wort = preg_split("/ /", $zeile, -1, PREG_SPLIT_NO_EMPTY);
if ("$wort[4]" == "$wort[5]")
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[2]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7] $wort[8]</td></tr>";
elseif ("$wort[4]" == "any")
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[2]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8] $wort[9]</td></tr>";
elseif ("$wort[6]" == "any")
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[2]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8] $wort[9]</td></tr>";
else
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[2]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8]</td>
<td bgcolor='#AFAFEF'>$wort[9] $wort[10]";
}
elseif (preg_match_all($deny,$zeile,$matches,PREG_SET_ORDER))
{
$i++;
$wort = preg_split("/ /", $zeile, -1, PREG_SPLIT_NO_EMPTY);
if ("$wort[4]" == "$wort[5]")
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[2]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7] $wort[8]</td></tr>";
elseif ("$wort[4]" == "any")
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[2]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8] $wort[9]</td></tr>";
elseif ("$wort[6]" == "any")
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[2]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8] $wort[9]</td></tr>";
else
echo "<tr><td bgcolor='#AFAFEF'>$i</td>
<td bgcolor='#AFAFEF'>$wort[1]</td>
<td bgcolor='#AFAFEF'>$wort[2]</td>
<td bgcolor='#AFAFEF'>$wort[3]</td>
<td bgcolor='#AFAFEF'>$wort[4]</td>
<td bgcolor='#AFAFEF'>$wort[5]</td>
<td bgcolor='#AFAFEF'>$wort[6]</td>
<td bgcolor='#AFAFEF'>$wort[7]</td>
<td bgcolor='#AFAFEF'>$wort[8]</td>
<td bgcolor='#AFAFEF'>$wort[9] $wort[10]";
}
}
echo "</td></tr></table>";
fclose ($open);
echo "</p><input type='submit' name='SUBMIT' value='als Excel exportieren'>
</form>";
?>
et dérnièrement voici l'export.php:
<?php
header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=Export_ACL.xls");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<?php
include ("action_browse.php");
?>
</body>
</html>
Configuration: Windows XP
Firefox 3.0.3