gpt4 book ai didi

php - 如何使用纯 PHP 格式化带有样式、字体、颜色、表格等的 excel 文件?

转载 作者:行者123 更新时间:2023-11-28 04:25:10 25 4
gpt4 key购买 nike

我需要一种通过纯 PHP 编写具有格式的 excel 文件的方法。警告:请注意,此 Q 与库、插件等无关,请勿打扰。我在谷歌上搜索了很多但没有找到答案,但是在一些关于 StackOverflow 的文章中,有人提到了 HTML/CSS 格式方式 HTML format solutions that didn't work 我试过这样做,但是在文件中保存的列中充满了标签,但没有任何反应。可能有一些专业人士可以帮助我通过 PHP、HTML、CSS 或其他方式编写 Excel 的纯代码。

再举个例子,我已经使用了这样的概念,但没有帮助:

    // headers for excel
$headers .= "<div style='font:bold 14px Times;'>Журнал остатков и инкассаций</div>\n";
$headers .= "Начало периода\t ".date('d.m.Y')."0:00 \n";
$headers .= "Начало периода\t ".date('d.m.Y')."23:59 \n\n";

$headers .= "Терминал\t";
$headers .= "Место расположения\t";
$headers .= "Дата\t";
$headers .= "Время\t";
$headers .= "Сумма инкассации\t";
$headers .= "Банкноты\t";

// excel content with overloaded terminals
if (mssql_num_rows($resCollection)>0) {
while ($rowCollection = mssql_fetch_object($resCollection)) {

$data .= $rowCollection->Name."\t".$rowCollection->Address."\t"
.$rowCollection->TerminalNotes."\t".$rowCollection->TerminalAmount
."\t".$rowCollection->DayAmountAll."\t"
.$rowCollection->LastPaymentTime."\n";

}
}

$fileName = 'collection'.date('d_m_Y_H_i_s').'.xls';


header("Content-type: application/vnd.ms-excel");// application/excel had also been used
header("Content-Disposition: attachment; filename=$fileName");
echo iconv('utf-8', 'cp1251', "$headers\n$data");

我不仅使用了 div 和表格——尽管它没有用。

最佳答案

以下示例可能会对您有所帮助:

  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>

将其保存为服务器上的 .php 文件。

它的作用是:添加 header 以强制浏览器处理您正在传送的 Excel 文件。然后在其中返回一张 table 。我的 Excel 完美地解决了这个问题。

注意:示例 HTML 来自您已经找到的答案。我刚刚将标题添加到开头。

注意:您刚刚更改了问题并添加了示例。您的示例不使用 html!您正在交付一个以制表符分隔的文件,其中每一行都以换行符结尾。

正确的做法是真正生成 HTML,即使用 <table>一开始,使用<tr></tr>对于每一行,并将字段放入 <td>标签,然后结束 </table> ,所以基本上:

$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>';

然后将最后一行更改为:

echo iconv('utf-8', 'cp1251', "$data"); 

如果可行,我建议您将输出更改为 <th>表格标题周围的标记,而不是示例中的 div。

关于php - 如何使用纯 PHP 格式化带有样式、字体、颜色、表格等的 excel 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6620398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com