6

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');
4

1 に答える 1

26

Set a default style that will apply to the whole workbook

$excel->getDefaultStyle()->applyFromArray($styleArray);

Though you should be able to read the range for any worksheet that has been loaded, and so set the style for that range

$excel->getActiveSheet()->getStyle(
    'A1:' . 
    $excel->getActiveSheet()->getHighestColumn() . 
    $excel->getActiveSheet()->getHighestRow()
)->applyFromArray($styleArray);
于 2013-04-30T11:07:01.917 に答える