- Merge Cell values with PHPExcel — PHP
- 3 Answers 3
- PHPExcel — главные функции с примерами
- 3. Объединение ячеек
- 4. Перенос текста в ячейке
- 5. Автоматическая ширина колонки по содержимому
- 6. Изменение названия листа
- 7. Стили текста
- 8. Фон ячейки
- 9. Гиперссылки
- 10. Рамки (границы)
- 11. Выравнивание в ячейках
- 12. Сохранение документа
Merge Cell values with PHPExcel — PHP
It looks like your headers aren’t working. Make sure they are before any output whatsoever (even whitespace).
If you have Firebug or Chrome, you can also use the NET tab to inspect the headers that your browser is seeing. But from what that looks like, your browser seems to think it’s plaintext and is trying to display it like a plaintext document.
3 Answers 3
There is a specific method to do this:
$objPHPExcel->getActiveSheet()->mergeCells('A1:C1');
$objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:C1');
Hi Jahmic, I want to check whether two rows have been merged or not. I have 1000 of rows and if any two is merged in between then exit. Please can you help?
@user3816325 I haven’t used these methods for a few years now, but I have no reason to believe anything is different. Make backups and give it a go. If your question is more complex, perhaps posting a new question is the way to go.
@AnjanBiswas I haven’t used this in quite a while, but I would suggest manually copying the values into separate PHP variables, format them the way you want, and then add that value back into the merged cell. BTW, the same thing will happen if you merge cells using the actual Excel application. So, by design.
@Jahmic I already found the solution. Actually I used cell merging for bar chart. To add value = $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, 1, «2010»); cell merging = $objPHPExcel->getActiveSheet()->mergeCells(‘A1:A5’); horizontal and vertical alignment for the cell = $objPHPExcel->getActiveSheet() ->getStyle(‘A1:A5’) ->getAlignment() ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet() ->getStyle(‘A1:A5’) ->getAlignment() ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
PHPExcel — главные функции с примерами
К сожалению, наименования русских формул не поддерживаются, так что придется поискать аналоги на латинице.
DATE | ДАТА | Возвращает заданную дату в числовом формате Microsoft Excel. |
CEILING | ОКРВВЕРХ | Округляет число до ближайшего целого или до ближайшего кратного указанному значению. |
INT | ЦЕЛОЕ | Округляет число до ближайшего меньшего целого. |
AND | И | Выдает значение ИСТИНА, если все аргументы имеют значение ИСТИНА. |
FALSE | ЛОЖЬ | Вставляет логическое значение ЛОЖЬ. |
IF | ЕСЛИ | Выполняет проверку условия. |
NOT | НЕ | Меняет на противоположное логическое значение своего аргумента. |
OR | ИЛИ | Выдает значение ИСТИНА, если хотя бы один аргумент имеет значение ИСТИНА. |
TRUE | ИСТИНА | Вставляет логическое значение ИСТИНА. |
3. Объединение ячеек
//объединяем ячейки с В1 по С1 и вставляем текст "Год" $objPHPExcel->setActiveSheetIndex(0) ->mergeCells( 'B1:C1') ->setCellValue( 'B1', 'Год');
4. Перенос текста в ячейке
//переносить слова в ячейках с B1 по L1 $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1:L1')->getAlignment()->setWrapText(true);
5. Автоматическая ширина колонки по содержимому
//Автоширина всей колонки по содержимому $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
6. Изменение названия листа
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');
7. Стили текста
// Шрифт Times New Roman $objPHPExcel->getStyle('A1')->getFont()->setName('Times New Roman'); // Размер шрифта 18 $objPHPExcel->getStyle("A2")->getFont()->setSize(18); // Цвет шрифта $objPHPExcel>getStyle("A3")->getFont()->getColor()->setRGB('ff0000'); // Жирный $objPHPExcel->getStyle("A4")->getFont()->setBold(true); // Курсив $objPHPExcel->getStyle("A5")->getFont()->setItalic(true); // Подчеркнутый текст $objPHPExcel->getStyle("A6")->getFont()->setUnderline(true); // Зачеркнутый текст $objPHPExcel->getStyle("A7")->getFont()->setStrikethrough(true);
то же самое с помощью массива
$style = array( 'font' => array( 'name' => 'Times New Roman', 'size' => 18, 'color' => array('rgb' => 'FF0000'), 'bold' => true, 'italic' => true, 'underline' => true, 'strike' => true, ) ); $objPHPExcel->getStyle('A1')->applyFromArray($style); //для всего документа $objPHPExcel->getDefaultStyle()->getFont()->setName('Times New Roman'); $objPHPExcel->getDefaultStyle()->getFont()->setSize(18); //. $style = array( 'font' => array( 'name' => 'Times New Roman', 'size' => 18, ) ); $objPHPExcel->getDefaultStyle()->applyFromArray($style);
8. Фон ячейки
$objPHPExcel->getActiveSheet() ->getStyle( "A2" ) ->getFill() ->setFillType(PHPExcel_Style_Fill::FILL_SOLID) ->getStartColor()->setRGB('A7E87C');
9. Гиперссылки
$objPHPExcel->setCellValue("A1", "Ссылка на example.com"); $objPHPExcel->getCell("A1")->getHyperlink()->setUrl("http://example.com"); $objPHPExcel->getCell("A1")->getHyperlink()->setTooltip('Подсказка'); // У текста можно сделать синий цвет и подчеркивание $objPHPExcel->getStyle("A1")->applyFromArray( array( 'font' => array( 'color' => array( 'rgb' => '0000FF' ), 'underline' => 'single' ) ) );
10. Рамки (границы)
objPHPExcel->getActiveSheet() ->getStyle( "A2" ) ->getBorders() ->getAllBorders() ->setBorderStyle(PHPExcel_Style_Border::BORDER_DOTTED);
$border = array( 'borders'=>array( 'outline' => array( 'style' => PHPExcel_Style_Border::BORDER_THIN, 'color' => array('rgb' => '000000') ), ) ); $objPHPExcel->getStyle("B2:J5")->applyFromArray($border);
- outline — внешняя рамка
- inside — внутренняя рамка
- allborders — таблица
- bottom — снизу
- right -справа
- top — вверху
- left — слева
11. Выравнивание в ячейках
//выравнивание по горизонтали $objPHPExcel->getActiveSheet()->getStyle('A1:K1')->getAlignment()->setHorizontal('center'); //выравнивание по вертикали $objPHPExcel->getActiveSheet()->getStyle('A1:K1')->getAlignment()->setVertical('center');
- center — по центру
- left — по левому краю (отступ)
- right — по правому краю (отступ)
- general — по значению
- centerContinuous — по центру выделения
- justify — по ширине
- fill — с заполнением
- distributed — распределенное (отступ) //только для Excel 2007
12. Сохранение документа
//отдача на скачивание Exel 2003, 2007 $objPHPExcel->setActiveSheetIndex(0); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8'); header('Content-Disposition: attachment;filename="MySheet.xls"'); //xlsx header('Cache-Control: max-age=0'); $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //PHPExcel_Writer_Excel2007 $objWriter->save('php://output'); exit(); //сохранить в файл Exel 2003, 2007 $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //PHPExcel_Writer_Excel2007 $objWriter->save(__DIR__ . '/file.xls'); //xlsx