我正在编写代码以使用Spreadsheet :: WriteExcel生成Excel。 我想将数据写入单元格并为其提供超链接。 我做到了但是在打开文件时,它显示警告说文件数据可能已丢失。
$Log_Sheet->write(12,0,'AA',$ERR_DESCR_Format );
$Log_Sheet->write_url(12, 0, 'internal:sheet3!A1' );
我想写内容并提供链接而不会得到警告。怎么做?
答案 0 :(得分:1)
Spreadsheet :: WriteExcel,尽管它很棒,但是已经好几年没有更新了,据我所知,它仅支持Office 2007之前的.xls扩展名。我真的建议您升级到Excel :: Writer :: XLSX,这是McNamara对开放XML标准格式(xlsx)的出色更新。
所以我不能肯定地说,因为在Excel :: Writer :: XLSX上不会发生此错误,但是我的最初理论是您正在将两个不同的值写入相同的单元格(12,0),所以一个实质上是在破坏另一个-因此是警告。
如果确实要升级到Excel-Writer,则警告应消失。更重要的是,如果您想要超链接,则可以在同一调用中包含链接和友好描述:
let data = [{app: "test1", key: 1}, {app: "test2", key:2}, {app: "test1", key:3}, {app: "test2", key:3}]
let checkArr = ["test1", "test2", "test3"];
var arr = data.filter(o => checkArr.indexOf(o.app) > -1);
console.log(arr)
对于它的价值,我认为$worksheet->write_url(12, 0, 'internal:Sheet3!A1', 'Click Here!');
方法也可以正确地将其解释为链接:
write
-编辑12/21/2018-
如果要在合并的单元格上创建超链接,一种方法是使用Excel的超链接功能:
$worksheet->write(12, 0, 'internal:Sheet3!A1', 'Click Here!');