php execl 列的长度,phpExcel列大小问题

这篇博客探讨了在使用PHPExcel库时如何避免每次写单元格时的性能开销,建议一次性设置列宽,并在保存前计算列宽以提高效率。文章提到了两种方法:一种是调整字体计算方法,另一种是直接调用calculateColumnWidths()方法并增加5%的宽度以确保内容适配。虽然不是完美的解决方案,但能显著改善性能。
摘要由CSDN通过智能技术生成

每次写单元格时都不要这样做……这是不必要的开销.每列只做一次.

请注意,保存时它仍然很昂贵,因为PHPExcel然后遍历该列中的每个单元格,根据该单元格的内容计算出所需的宽度,同时考虑公式计算和格式化,并使用其中任何单元格的最大大小柱.即使这样,它也不是一个完美的解决方案:默认行为是估计,计算要显示的字符数,并使用基于字体的通用乘数(Arial,Verdana of Calibri)和一点点填充.为了更准确的计算,您可以更改用于计算的方法,然后代码使用GD构建ttf边界框,并将单元格大小基于该框的尺寸.这是一个更准确的计算,但速度要慢很多.

您可以使用以下方法更改计算方法:

PHPExcel_Shared_Font::setAutoSizeMethod($method);

在保存之前,其中$method是以下之一:

PHPExcel_Shared_Font::AUTOSIZE_METHOD_APPROX

PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT

这仍然不是一个完美的解决方案,但它是PHPExcel可以做的最佳计算.

另一种方法是在保存之前直接自己调用工作表的calculateColumnWidths()方法…然后遍历每个列的维度,将值增加5%,以便在保存之前尝试确保整个列适合.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值