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

PHPExcel列自适应宽度的方法

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-07-10 08:56 浏览: 906 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);


相关文章

composer更新指定包

composer更新指定包的命令composer require alibabacloud/dysmsapi-20170525:2.0.24 --ignore-platform-reqscomposer update alibabacl...

做网站用H5好还是用VUE好?

今天有同学问,要做一个网站,技术方面是用html5呢还是用vue呢?丁老师给你解答。其实,用html5和用vue,都可以做网站,但是就架构适用性来说,html5和vue有不同的特点。html5做网站的优点:1.快速开发,上手简单,不需要...

IntelliJ/phpstorm/webs...

在使用jetbrains的ide开发代码时,经常性的会输入单引号或双引号,ide默认有对于引号的自动完成功能,即输入一个引号,自动显示两个,这一点其实做的很不智能,因为在使用时经常会有显示出3个的情况,那么怎么关闭这个功能呢?file-...

微信支付常见问题及解决办法

微信支付常见问题及解决办法

推荐文章

php拼装sql语句,换行查询出错的问题解决

在php代码中,遇到复杂的sql语句,需要拼装sql语句,如:$sql='id 10;'$sql=' and (status in(1,2,3,4,5) andid not in (select id from aa...

tortoise svn出现no path ...

在日常开发过程中,突然发现svn无法提交和更新,出现“nopathorpathfilespecifiedonthecommandline”的错误,网上搜了一圈百度google以及stackoverflow都没找到真正能解决问题的办法,本着不...

fastadmin非菜单链接,跳转菜单页面的...

在fastadmin中,一个页面的非菜单链接,想要点击后打开指定页面,并且菜单自动展开,该怎么实现呢?经过丁老师研究后,发现超级简单,废话不多说,直接上代码:<a class="btn-addtabs" href=...

fastadmin btn-dialog按钮...

fastadmin里自定义按钮的btn-dialog,弹出窗口时默认大小,设置了data-area无效,经过研究后,发现了可用的方法,直接上代码不废话:table.on('post-body.bs.table',functi...