如何将边框应用于所有单元格,而不是范围!

imp*_*335 5 php phpexcel

我有我的Excel阅读器工作,但有一个恼人的问题,我只能找到有关如何将边框应用于一系列单元格的信息,这对我的应用程序是无用的.

用户上载可在以后查看的Excel工作表.因此,范围变化后,单元格范围方法将不起作用.

是否没有默认参数来设置所有单元格样式等?

这是我有的:

require_once ROOT . '/libs/PHPExcel/IOFactory.php';
      $excel = PHPExcel_IOFactory::load('../public_html/uploads/' . $filename);
      PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);
      $writer = PHPExcel_IOFactory::createWriter($excel, 'HTML');

      $writer->setUseInlineCSS(true);
      $styleArray = array(
          'borders' => array(
              'allborders' => array(
                  'style' => PHPExcel_Style_Border::BORDER_THIN
              )
          )
      );

      $excel->getActiveSheet()->getStyle('A1:B1')->applyFromArray($styleArray);
      unset($styleArray);
      $writer->save('uploads/excel-sheet.html');
      header('Location: ' . WROOT . 'uploads/excel-sheet.html');
Run Code Online (Sandbox Code Playgroud)

Mar*_*ker 24

设置将应用于整个工作簿的默认样式

$excel->getDefaultStyle()->applyFromArray($styleArray);
Run Code Online (Sandbox Code Playgroud)

虽然您应该能够读取已加载的任何工作表的范围,因此设置该范围的样式

$excel->getActiveSheet()->getStyle(
    'A1:' . 
    $excel->getActiveSheet()->getHighestColumn() . 
    $excel->getActiveSheet()->getHighestRow()
)->applyFromArray($styleArray);
Run Code Online (Sandbox Code Playgroud)

  • @Siddharth Rout - 有,但``getHighestRow()`和`getHighestColumn()`实际上并不是它:)这些函数返回包含某些内容的最高列/行 - 但不一定是数据,它可以包含样式信息,如格式化颜色,或覆盖数据区域的图像,或打印中断或任何东西.有等效的方法,`getHighestDataRow()`和`getHighestDataColumn()`,返回对实际包含数据的单元格的最高引用; 但它们的使用效率较低,因为它们会主动检查细胞值 (2认同)