【发布时间】:2017-05-06 15:24:45
【问题描述】:
我正在使用 phpexcel 从 mysql 数据库生成一个可下载的 excel 文件。其中,有一个18位数字的字段,在mysql中,它被定义为Bigint。该数字在代码中定义为超链接。现在,有以下问题 -
数字超链接的最后 4 位显示为 0000,尽管单击数字超链接时,它可以正确打开。示例860814069447613475在生成的excel中显示为860814069447610000
这是我的代码 -
$objPHPExcel->getActiveSheet()
->getStyle('A'.(string)$n)
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_NUMBER
);
$n = 2;
while ($row = mysqli_fetch_array($result)){
$objPHPExcel->getActiveSheet()->setCellValue('A'.(string)$n,
$row['t_id']);
$objPHPExcel->getActiveSheet()->setCellValue('B'.(string)$n,
$row['t_text']);
$objPHPExcel->getActiveSheet()->setCellValue('C'.(string)$n,
$row['user_name']);
$objPHPExcel->getActiveSheet()->setCellValue('D'.(string)$n,
$row['description']);
$objPHPExcel->getActiveSheet()->setCellValue('E'.(string)$n
,$row['time']);
$objPHPExcel->getActiveSheet()->setCellValue('F'.(string)$n,
$row['place']);
$objPHPExcel->getActiveSheet()->getStyle("A$n:F$n")->getAlignment()-
>setWrapText(true);
$objPHPExcel->getActiveSheet()
->getCell('A'.(string)$n)
->getHyperlink()
->setUrl('http://t.com/'.$row['user_name'].'/status/' . $row['t_id']);
// Config
$link_style_array = [
'font' => [
'color' => ['rgb' => '0000FF'],
'underline' => 'single'
]
];
// Set it!
$objPHPExcel->getActiveSheet()->getStyle('A'.(string)$n)->applyFromArray($link_style_array);
$n++;
}
【问题讨论】:
-
Excel 的精度为 15 位。如果您需要以更高的精度显示数字,则需要将它们作为文本存储在 Excel 中(并且在输入数字字符串之前必须将单元格格式化为文本)