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

PHPExcel列自适应宽度的方法

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


相关文章

微信小程序实现pdf/doc等文档预览并可以...

微信小程序可以实现文档的在线预览及保存本地下载,支持的格式有pdf/doc/xls/ppt等常用文档类型,如图:除了对办公文档进行预览,还可以进行转发、收藏、保存手机本地等其他操作。实现该功能的思路为,先用downloadFile下载文...

织梦dedecms添加自定义字段后发布文章时...

最近有很多读者朋友来函,咨询新版本的织梦dedecms,在模型中新添加了自定义字段后,网站后台发布时却不显示这个字段的问题。丁老师亲自下了一个最新版的dedecms安装后,找到了后台发布时显示自定义字段的方法。

fastadmin btn-dialog按钮...

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

微信公众号如何集成对接网站网页

微信公众号可以把官网的网页集成进去吗?想通过微信公众号实现打开公司网站的页面,具体要怎么实现呢?其实这个功能,可以通过微信菜单的方式来实现...

推荐文章

如何删除idea软件搜索时的find mas...

在使用idea系列的配套软件时,如intellijidea、PhpStorm、WebStrom时,在搜索文件时,右上角的filemask可以筛选指定类型的文件。但是有时候可能会输入错误,产生多个记录,而且没办法删除,在以后的开发中经常会耽误...

CI框架页面添加全局变量的方法

CI框架是一款很小却又非常强大的PHP程序框架,非常适合用来搭建中小型网站以及扩展程序。有同学问到,在使用CI框架时,比如要对全站的标题、公司信息、电话等设置一个全局变量,不用每个页面都写死,该怎么办呢?丁老师来教你:1.打开页面的控制器文...

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

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

IntelliJ/phpstorm/webs...

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

QQ咨询 微信咨询