我为用户提供了从我的PHP网站下载表格数据的选项.

在以下PHP代码的帮助下,一切正常:

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=data.csv");
header("Pragma: no-cache");
header("Expires: 0");
...
...
...

$csvdata.="{$row['ProdName']},{$row['ProdQty']},{$row['ProdPrice']},<a href='https://example.com/page1.html'>Link</a>,https://example.com/page1.html,"."\n";
echo $csvdata."\n";

Here is a screenshot of how data in CSV file when opened in MS Excel appears: enter image description here

对于A、B和C列来说,这一切都很好.

然而,对于D(或E)列,我想加入一个可点击的URL链接,这样当用户在MS Excel中打开下载的CSV文件时,他们应该能够获得一个可点击的链接,点击该链接时,他们应该可以在浏览器中访问我的网站上的相应网页.

理想情况下,它应该显示为屏幕截图中D9和D10单元格中的"更多细节"蓝色链接.

从上面的PHP代码中可以看出,我曾try 在D列中使用<a href>表示值,在E列中使用direct text URL表示值,但在Excel中打开文件时,两者都不是以可点击链接的形式打开的.

如何通过修改PHP代码来实现它?

推荐答案

请使用超链接功能使CSV超链接正常工作

示例(请另存为test.csv):

a, b, c, d ,"=HYPERLINK(""http://www.yahoo.com"",""See Yahoo"")"
e, f, g, h ,"=HYPERLINK(""http://www.yahoo.com"",""See Yahoo"")"

因此,请修改代码以使用上述格式,例如:

<?php
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=data.csv");
header("Pragma: no-cache");
header("Expires: 0");

echo '1,2,3,"=HYPERLINK(""http://www.yahoo.com"",""See Yahoo"")"' . "," . '"=HYPERLINK(""http://www.google.com"",""Google"")"'."\n";
echo '8,7,6,"=HYPERLINK(""http://www.yahoo.com"",""See Yahoo"")"' . "," . '"=HYPERLINK(""http://www.google.com"",""Google"")"'."\n";


?>

Php相关问答推荐

将一个数字分配到一系列因素中(就像贪婪算法)

try 修改这个PHP代码如果语句在WordPress""

Php解压缩deflate64

允许在WooCommerce管理员优惠券列表中显示自定义优惠券类型

Laravel POST方法返回状态:POST方法上不允许使用405方法

WooCommerce-在选定类别中每消费X个金额即可添加免费礼物

将SVG包含在另一个php生成的SVG中

服务器迁移后无法上载文件-可能存在权限问题

在WooCommerce中只允许高价产品的BACS付款

在WooCommerce存档页面中显示可变产品的库存变化属性

可以';exec、system和shell_exec PHP函数中的命令字符串上的字符数不得超过8175

对 WooCommerce 购物车和 checkout 中显示的运输方式进行排序

如何在 PHP 中以 hh:mm:ss 格式获取两个 strtotime datetime/s 之间的时间差

WooCommerce 以编程方式添加的费用不会持续存在

根据所选付款方式启用/禁用 WooCommerce 所需的 checkout 字段

根据所选付款方式更改 WooCommerce 提交结帐按钮文本

在WooCommerce中显示 checkout 的高级自定义字段(Advanced Custom Fields)并保存其值

为什么在解压缩具有混合字符串和 int 键的关联数组时出现错误消息无法使用位置参数...?

Laravel Websockets 错误:(WebSocket 在建立连接之前关闭)

如何使用 php 删除 google drive 共享驱动器文件夹中的文件?