【问题标题】:Setting width of spreadsheet cell using PHPExcel使用 PHPExcel 设置电子表格单元格的宽度
【发布时间】:2011-10-10 22:26:55
【问题描述】:

我正在尝试在使用 PHPExcel 生成的 Excel 文档中设置单元格的宽度:

$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);

但这不起作用。

这里需要调用什么方法?

【问题讨论】:

    标签: php phpexcel phpspreadsheet


    【解决方案1】:

    这种方式更容易自动调整列的大小。

    foreach (range('A', 'I') as $letra) {            
                $spreadsheet->getActiveSheet()->getColumnDimension($letra)->setAutoSize(true);
    }
    

    【讨论】:

      【解决方案2】:

      autoSize 列宽设置如下。它对我有用。

      $spreadsheet->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
      

      【讨论】:

        【解决方案3】:

        这对我有用:

        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(false);
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10);
        

        一定要添加setAuzoSize(false)之前 setWidth(); 如罗兰提到的

        【讨论】:

        • 请不要像罗兰已经定义的那样添加重复的答案
        • 是的,但它使用 getColumnDimension 而不是 getColumnDimensionByColumn
        • @MKhalidJunaid 您可能需要再次检查。它甚至不是一个重复的答案,因为它完全实现了其他方法。
        【解决方案4】:

        这是一个微妙的区别,但这对我来说很好:

        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
        

        注意,getColumnDimensionByColumngetColumnDimension的区别

        另外,我什至没有设置 AutoSize,它工作正常。

        【讨论】:

        • 如何将 wordwrap 属性设置为特定列。如果你知道,这对我很有用。谢谢!
        • 自从我使用 PHPExcel 已经有一段时间了,但我相信你想要'setWrapText'。示例:$objPHPExcel->getActiveSheet()->getStyle('A6')->getAlignment()->setWrapText(true);
        • Jahmic 是对的。默认情况下,所有列的 AutoSize 都设置为 false,因此无需使用代码执行此操作。
        【解决方案5】:

        这是因为 getColumnDimensionByColumn 接收列索引(从 0 开始的整数),而不是字符串。

        setCellValueByColumnAndRow

        也是如此

        【讨论】:

          【解决方案6】:

          setAutoSize 方法必须在 setWidth 之前:

          $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
          $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
          

          【讨论】:

          • AutoSize:false 是必需的以设置宽度
          • getColumnDimensionByColumn() 需要一个基于 0 的列索引,而不是列名。 (来自 Worksheet 类:“@param string $pColumn 单元格的数值列坐标”)
          【解决方案7】:

          嗨,我遇到了同样的问题.. 将 0.71 添加到 excel 单元格宽度值并将该值赋予

          $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
          

          例如: A Column width = 3.71(excel值)

          给列宽 = 4.42

          将给出具有相同单元格宽度的输出文件。

          $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(4.42);
          

          希望有帮助

          【讨论】:

            【解决方案8】:

            设置列宽的正确方法是使用 Jahmic 发布的行,但重要的是要注意另外,您必须在添加数据之后应用样式,而不是之前,否则在某些配置上,不应用列宽

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-03-11
              • 1970-01-01
              • 1970-01-01
              • 2017-12-17
              • 2013-02-25
              • 2013-06-20
              • 2019-01-06
              • 2014-02-10
              相关资源
              最近更新 更多