我试图让第一行的单元格变为粗体。
这是我为此目的创建的方法。
function ExportToExcel($tittles,$excel_name)
{
$objPHPExcel = new PHPExcel();
$objRichText = new PHPExcel_RichText();
// Set properties
$objPHPExcel->getProperties()->setCreator("SAMPLE1");
$objPHPExcel->getProperties()->setLastModifiedBy("SAMPLE1");
$objPHPExcel->getProperties()->setTitle("SAMPLE1");
$objPHPExcel->getProperties()->setSubject("SAMPLE1");
$objPHPExcel->getProperties()->setDescription("SAMPLE1");
// Add some data
$objPHPExcel->setActiveSheetIndex(0);
$letters = range('A','Z');
$count =0;
$cell_name="";
foreach($tittles as $tittle)
{
$cell_name = $letters[$count]."1";
$count++;
$value = $tittle;
$objPHPExcel->getActiveSheet()->SetCellValue($cell_name, $value);
// Make bold cells
$objPHPExcel->getActiveSheet()->getStyle($cell_name)->getFont()->setBold(true);
}
// Save Excel 2007 file
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
//$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
$objWriter->save($excel_name.".xlsx");
}
问题出在输出excel文件中,单元格不是粗体。
答案 0 :(得分:99)
尝试使用此范围的细胞:
$from = "A1"; // or any value
$to = "B5"; // or any value
$objPHPExcel->getActiveSheet()->getStyle("$from:$to")->getFont()->setBold( true );
或单个细胞
$cell_name = "A1";
$objPHPExcel->getActiveSheet()->getStyle( $cell_name )->getFont()->setBold( true );
希望有所帮助
答案 1 :(得分:43)
试试这个
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);
答案 2 :(得分:28)
$objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true);
这样你就可以获得完整的第一行
答案 3 :(得分:18)
假设标题位于从A1开始的工作表的第一行,并且您知道它们中有多少,这是我的解决方案:
$header = array(
'Header 1',
'Header 2'
);
$objPHPExcel = new PHPExcel();
$objPHPExcelSheet = $objPHPExcel->getSheet(0);
$objPHPExcelSheet->fromArray($header, NULL);
$first_letter = PHPExcel_Cell::stringFromColumnIndex(0);
$last_letter = PHPExcel_Cell::stringFromColumnIndex(count($header)-1);
$header_range = "{$first_letter}1:{$last_letter}1";
$objPHPExcelSheet->getStyle($header_range)->getFont()->setBold(true);
答案 4 :(得分:8)
这些是制作细胞的一些提示Bold
,Big font
,Italic
我们说我有A
到L
A1
- 是你的起始单元
L1
- 是你的最后一个单元格
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setSize(16);
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setItalic(true);
答案 5 :(得分:6)
使用此:
$sheet->getStyle('A1:'.$sheet->getHighestColumn().'1')->getFont()->setBold(true);
答案 6 :(得分:4)
$objPHPExcel->getActiveSheet()->getStyle("A1:".$objPHPExcel->getActiveSheet()->getHighestDataColumn()."1")->getFont()->setBold(true);
我发现这是一个有效的解决方案,您可以用行号替换1
的两个实例。 HighestDataColumn
函数返回例如C或Z,它为您提供包含任何数据的工作表中的最后/最高列。还有getHighestColumn()
,其中一个包含空格但具有样式或属于其他功能的单元格。
答案 7 :(得分:2)
这会迭代特定行的可变数量的列,在本例中是第1行:
$rownumber = 1;
$row = $this->objPHPExcel->getActiveSheet()->getRowIterator($rownumber)->current();
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
$cell->getStyle()->getFont()->setBold(true);
}
答案 8 :(得分:2)
制作粗体标题的简单方法:
const baz = (foobar) => (`${foobar ?? 555}baz`) // same as: const baz = (foobar = 555) => (`${foobar}baz`);
baz()
// 555baz
答案 9 :(得分:1)
试试这个
$objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); $objPHPExcel->setActiveSheetIndex(0); $sheet = $objPHPExcel->getActiveSheet(); $sheet->setCellValue('A1', 'No'); $sheet->setCellValue('B1', 'Job ID'); $sheet->setCellValue('C1', 'Job completed Date'); $sheet->setCellValue('D1', 'Job Archived Date'); $styleArray = array( 'font' => array( 'bold' => true ) ); $sheet->getStyle('A1')->applyFromArray($styleArray); $sheet->getStyle('B1')->applyFromArray($styleArray); $sheet->getStyle('C1')->applyFromArray($styleArray); $sheet->getStyle('D1')->applyFromArray($styleArray); $sheet->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
这是给我输出如下链接。(https://www.screencast.com/t/ZkKFHbDq1le)
答案 10 :(得分:-1)
你可以尝试
$objPHPExcel->getActiveSheet()->getStyle(1)->getFont()->setBold(true);