首页 > 原创文章 > 软件开发 > 查看文章

PHPExcel列自适应宽度的方法

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-07-10 08:56 浏览: 2465 IP属地: 深圳

有同学提问,在使用PHPExcel时,使用自带的setAutoSize方法无效,代码如下:

$PHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex(1))->setAutoSize(true);

这是PHPExcel文档中自带的写法,丁老师试了下,生成的Excel列不是自适应宽度的,还真的是没起做用

image.png

研究了一下,不如换个思路,可以根据列内文字的长度来设置宽度
获取文字长度时,需要先将文字转换为中文字符,用来计算包含中文的文字长度。

$strlen=strlen(iconv('utf-8','gb2312','丁老师软件'));

得到宽度后,设置列宽度,然后执行生成Excel代码

$PHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth($strlen);

果然,生成的Excel列宽度变为了自适应。

image.png

但是这个时候,列之间因为没有边距,所以还是显得稍微拥挤。我们可以在设置宽度时+2,生成的Excel效果要好看很多。

image.png

完整代码:

$sheet->setCellValue('A1','姓名')->setCellValue('B1','丁老师软件');

$len_1=strlen(iconv('utf-8','gb2312','姓名'));
$len_2=strlen(iconv('utf-8','gb2312','丁老师软件'));

$sheet->getColumnDimension('A')->setWidth($len_1);
$sheet->getColumnDimension('B')->setWidth($len_2);


标签:

相关文章

小程序想升级,是二次开发好还是重做划算?

有同学咨询丁老师,他们公司之前开发的微信小程序,已经运行了四年多,不管是从UI界面上来说,还是功能使用上,都不太理想,想对小程序进行升级改造,那么是对小程序进行二次开发好呢,还是重新做好呢?今天丁老师针对这个问题,从小程序升级所涉及的开...

Java如何在请求中加入参数?

在Java中,提交请求时加入参数有两种方法:一、把参数直接写在url中,如:如请求url是https://www.aaa.com,参数是name=kevin,gender=2,那么可以直接把请求url写成https://www.aaa....

Html网页调用打开微信小程序白屏的问题解决...

最近好多学员在问,自己开发的小程序,需要用html网页打开,按照网上的教程,没有一个成功的,希望丁老师帮助下。我说没问题,然后去网上看了一下,关于使用h5打开微信小程序这个问题,全部都是只言片语,没有一篇完整的内容,大家把各种代码东拼西...

C++为什么不能在未命名的结构上调用成员函数...

int main() { auto hello= struct { int test() { return 1; } }().test(); }有初学C++的小伙伴提问,在运行C++代码时报错,错误提示如下:<source :2:...

推荐文章

Mysql 1267 Illegal mix...

这个问题,用普通sql语句查询,好解决,把表的字符编码改为对应的就可以了。 但在使用视图查询时,比如select 'aaa' as type from xxx; select * from view where type=...

Hbuilder开发APP时,找不到真机的解...

正确的USB连线,其次打开开发者选项、USB调试,这些都是老生常谈,就不说了。在确保以上操作无误后,如果还找不到真机,关闭IDE,然后去adb的目录下,即HBuilderX\plugins\launcher\tools\adbs,把adb....

低成本的政企软件系统维护服务

开源节流,控制生产成本,限制开销,是每个企业和单位都要采取的成本控制和管理措施。其中,人力成本是企业在经营中支出占比较大的一块。以IT信息化部门为例,一个负责企业软件系统运维的IT部门,至少需要配置3个员工,每个员工按照IT工程师3-5年工...

安装fastadmin提示“你所浏览的页面暂...

安装fastadmin,打开后提示"你所浏览的页面暂时无法访问",无法安装,是因为程序的runtime没有写权限,需要对runtime目录,添加写权限。解决方法:windows:右键目录,写入按钮打勾。如果不行,在“安全...