The following example would probably help you:
1 <?php
2 header('Content-type: application/excel');
3 header('Content-Disposition: attachment; filename="test.xls"');
4 ?>
5
6 <table>
7 <tr><th>Column 1</th><th>Column 2</th></tr>
8 <tr><td style="font-size:200%">Answer 1</td><td style="color:#f00">Answer 2< /td></tr>
9 <tr><td colspan="2" style="font-weight:bold">Answer 3 with 2 columns</td></t r>
10 </table>
Save this as a .php file on your server.
What it does is: add headers to force the browser thing you're delivering an Excel file. And then returning a table inside of it. My Excel picks this up perfectly.
Note: the sample HTML comes from the answer that you had already found. I have just added the headers to the beginning.
Note: You just changed your question and added an example. Your example does NOT use html! You are delivering a TAB-delimited file where each line ends with a newline.
The proper way to do this is to really generate HTML, ie, use a <table>
at the beginning, use <tr>
and </tr>
for each row, and put the fields in <td>
tags, and then finish with the closing </table>
, so basically:
$data='<table>';
// excel content with overloaded terminals
if (mssql_num_rows($resCollection)>0) {
while ($rowCollection = mssql_fetch_object($resCollection)) {
$data.='<tr>';
$data .= '<td>'.$rowCollection->Name."</td><td>".$rowCollection->Address."</td><td>"
.$rowCollection->TerminalNotes."</td><td>".$rowCollection->TerminalAmount
."</td><td>".$rowCollection->DayAmountAll."</td><td>"
.$rowCollection->LastPaymentTime."</td>";
$data.='</tr>';
}
}
$data.='</table>';
Then change your last line to:
echo iconv('utf-8', 'cp1251', "$data");
If that works I suggest you change the output to have <th>
tags around your table headers, instead of the div that is in your example.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…