文件错误:提供超链接时数据可能已经丢失

时间:2018-12-20 07:00:12

标签: excel perl hyperlink

我正在编写代码以使用Spreadsheet :: WriteExcel生成Excel。 我想将数据写入单元格并为其提供超链接。 我做到了但是在打开文件时,它显示警告说文件数据可能已丢失。

$Log_Sheet->write(12,0,'AA',$ERR_DESCR_Format );
$Log_Sheet->write_url(12, 0,  'internal:sheet3!A1'  );

我想写内容并提供链接而不会得到警告。怎么做?

1 个答案:

答案 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!');