Dav*_*vuz 28 php autosize width phpexcel
我正在使用PHPExcel导出数据以供下载.打开下载的文件时,如果单元格数量较大,则显示"#######"而不是值编号.我尝试setAutoSize()
了每个列,然后调用,$sheet->calculateColumnWidths()
但它仍然没有变化.我在这里看到calculateColumnWidths(),@ Mark Baker说"calculateColumnWidths()将值增加5%,以确保整个列适合".如果单元格中的数字长度超过5%,那么似乎已经解决了问题
更新 这是我自动调整列的功能:
function autoFitColumnWidthToContent($sheet, $fromCol, $toCol) {
if (empty($toCol) ) {//not defined the last column, set it the max one
$toCol = $sheet->getColumnDimension($sheet->getHighestColumn())->getColumnIndex();
}
for($i = $fromCol; $i <= $toCol; $i++) {
$sheet->getColumnDimension($i)->setAutoSize(true);
}
$sheet->calculateColumnWidths();
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ker 28
第一个潜在的问题可能是你正在使用专栏信.PHP的递增器操作将使用列字母,因此如果$ i为'A',则$ i ++将给出'B',如果$ i为'Z',则$ i ++将给出'AA'; 但你不能用<=作为你的比较器,因为'AA'是<='Z',当作为直接比较执行时.
代替
for($i = $fromCol; $i <= $toCol; $i++) {
Run Code Online (Sandbox Code Playgroud)
使用
$toCol++;
for($i = $fromCol; $i !== $toCol; $i++) {
Run Code Online (Sandbox Code Playgroud)
要在调用$ sheet-> calculateColumnWidths()后添加5%的保证金,请执行以下操作:
for($i = $fromCol; $i !== $toCol; $i++) {
$calculatedWidth = $sheet->getColumnDimension($i)->getWidth();
$sheet->getColumnDimension($i)->setWidth((int) $calculatedWidth * 1.05);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
48066 次 |
最近记录: |