PPHExcel жирный текст в динамическом диапазоне - PullRequest
1 голос
/ 15 ноября 2011

Как я могу использовать setBold для работы с динамическим диапазоном ячеек? Иногда может быть 10 столбцов, а иногда 50. Я не могу использовать диапазон, такой как A1: A40, так как никогда не знаю точного количества.

Спасибо

1 Ответ

0 голосов
/ 18 января 2012
$outputFileType = 'Excel2007';
$outputFileName = 'testWrite.xlsx';

/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/');

/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';

//  Instantiate a new PHPExcel object and set some data
$objPHPExcel = new PHPExcel();
$cellData = magicSquare(4);
$objPHPExcel->getActiveSheet()->fromArray($cellData);

//  Define a style to set
$styleArray = array('font' => array('bold' => true,
                                   )
                   );
//  And a range of cells to set it for
$fromCol = 'A';
$toCol = 'C';
$fromRow = 1;
$toRow = 3;
$cellRange = $fromCol . $fromRow . ':' . $toCol . $toRow;

$objPHPExcel->getActiveSheet()->getStyle($cellRange)->applyFromArray($styleArray);

//  Save the workbook
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $outputFileType);
$objWriter->save($outputFileName);


function magicSquare($size) {
    $row = 1;
    $column = ceil($size / 2);
    $result = array();
    $valueCount = $size*$size;

    for ($i = 1; $i <= $valueCount; $i++) {
        $result[$row][$column] = $i;

        if (($i % $size) == 0) {
            $row++;
        } else {
            $row--;
            $column++;
        }

        if ($row <= 0) {
            $row = $size;
        } elseif($row > $size) {
            $row = 1;
        }
        if ($column <= 0) {
            $column = $size;
        } elseif ($column > $size) {
            $column = 1;
        }
    }

    ksort($result);
    foreach($result as &$row) {
        ksort($row);
    }

    return $result;
}
...