gpt4 book ai didi

php - 如何PHPExcel设置自动列宽

转载 作者:IT王子 更新时间:2023-10-29 01:16:40 26 4
gpt4 key购买 nike

我正在使用 PHPExcel 导出数据以供下载。当打开下载的文件时,单元格有大数字,它显示“#######”而不是值数字。我为每一列尝试了 setAutoSize() 然后调用 $sheet->calculateColumnWidths() 但它仍然没有改变。我看到 calculateColumnWidths() at here ,@Mark Ba​​ker 说“calculateColumnWidths() 将值增加 5% 以尝试确保整个列适合”。如果单元格中的数字长度超过 5%,似乎 doen 解决了问题

更新这是我自动调整列大小的功能:

   function autoFitColumnWidthToContent($sheet, $fromCol, $toCol) {
if (empty($toCol) ) {//not defined the last column, set it the max one
$toCol = $sheet->getColumnDimension($sheet->getHighestColumn())->getColumnIndex();
}
for($i = $fromCol; $i <= $toCol; $i++) {
$sheet->getColumnDimension($i)->setAutoSize(true);
}
$sheet->calculateColumnWidths();
}

最佳答案

第一个潜在问题可能是您正在使用列字母。PHP 的增量操作将使用列字母,所以如果 $i 是 'A',那么 $i++ 将给出 'B',如果 $i 是 'Z',则 $i++ 将给出 'AA';但您不能使用 <= 作为比较器,因为作为直接比较执行时,'AA' 是 <= 'Z'。

代替

for($i = $fromCol; $i <= $toCol; $i++) {

使用

$toCol++;
for($i = $fromCol; $i !== $toCol; $i++) {

要在调用 $sheet->calculateColumnWidths() 后添加 5% 的边距,请执行以下操作:

for($i = $fromCol; $i !== $toCol; $i++) {
$calculatedWidth = $sheet->getColumnDimension($i)->getWidth();
$sheet->getColumnDimension($i)->setWidth((int) $calculatedWidth * 1.05);
}

关于php - 如何PHPExcel设置自动列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10927462/

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