有同学提问,在使用PHPExcel时,使用自带的setAutoSize方法无效,代码如下:
$PHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex(1))->setAutoSize(true);
这是PHPExcel文档中自带的写法,丁老师试了下,生成的Excel列不是自适应宽度的,还真的是没起做用。
研究了一下,不如换个思路,可以根据列内文字的长度来设置宽度。
获取文字长度时,需要先将文字转换为中文字符,用来计算包含中文的文字长度。
$strlen=strlen(iconv('utf-8','gb2312','丁老师软件'));
得到宽度后,设置列宽度,然后执行生成Excel代码
$PHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth($strlen);
果然,生成的Excel列宽度变为了自适应。
但是这个时候,列之间因为没有边距,所以还是显得稍微拥挤。我们可以在设置宽度时+2,生成的Excel效果要好看很多。
完整代码:
$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);
匹配a链接正则:<a href="[^"]+"匹配数字替换,如替换sql语句的(2,'a','b')为(2,2,'a','b')查找项:...
百度ueditor在使用附件上传时,会自动在附件链接前边添加一个图标,这个图标不仅不美观,而且会暴露出ueditor的真实地址,给不法分子可乘之机,所以研究了下直接去掉。解决方法:ueditor.all.js里搜索dialogs/att...
在开发CodeIgniter的上传功能时,提示uploadpathdoesnotappeartobevalid,说是上传路径错误,但是仔细检查了设置的路径是对的。怎么还出现这个提示呢?经过丁老师研究,是因为CodeIgniter的官方文...
宝塔系统相关问题解决方法
在使用python3.12时突然遇到提示windowsNomodulenameddistutils,研究了一下,把解决办法分享出来。1.安装setuptools,它现在也提供distutils;2.从第三方源(如系统软件包)载入distut...
这个问题,用普通sql语句查询,好解决,把表的字符编码改为对应的就可以了。但在使用视图查询时,比如select'aaa'astypefromxxx;select*fromviewwheretype='aaa'...
在实际工作中发现,有个编辑器每次保存或者修改后,都会自动在内容顶部和底部增加几行,烦人的很,一直找不到解决办法。后来发现原来是自己代码的问题。解决办法:内容在textarea中,不要换行不要写成:<textarea {content}...
在php代码中,遇到复杂的sql语句,需要拼装sql语句,如:$sql='id 10;'$sql=' and (status in(1,2,3,4,5) andid not in (select id from aa...