PHPExcel Machen Sie die erste Zeile fett

75

Ich versuche, Zellen in der ersten Reihe fett zu machen.

Dies ist die Methode, die ich zu diesem Zweck erstellt habe.

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");
 }

Das Problem ist, dass in der Ausgabe-Excel-Datei die Zellen nicht fett gedruckt sind.

Rakesh
quelle
1
macht es alle Zeilen fett oder nicht?
Bhavik Shah
Haben Sie versucht, $ cell_name wiederzugeben? Gibt es den richtigen Zellennamen?
Bhavik Shah
@ BhavikShah Zellennamen sind korrekt.
Rakesh
Alter, versuche die Schriftgröße zu erhöhen. Versuch es einmal. Nicht sicher.
Bhavik Shah
1
Überprüfen Sie dies . Dies könnte Ihnen helfen.
Bhavik Shah

Antworten:

123

Versuchen Sie dies für eine Reihe von Zellen:

$from = "A1"; // or any value
$to = "B5"; // or any value
$objPHPExcel->getActiveSheet()->getStyle("$from:$to")->getFont()->setBold( true );

oder einzelne Zelle

$cell_name = "A1";
$objPHPExcel->getActiveSheet()->getStyle( $cell_name )->getFont()->setBold( true );

hoffentlich hilft das

Ali Mezal
quelle
4
Nein, nur A1 oder A1: B1 für die 2 Zellen
Steven Scott
49

Versuche dies

$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);
Sadikhasan
quelle
29
$objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true);

Auf diese Weise erhalten Sie die komplette erste Reihe

ednincer
quelle
Wie setze ich meine dritte Reihe fett?
Divyesh Jesadiya
1
Arbeitete für mich - 2: 2 setze die ganze zweite Reihe als fett. Auch getStyle (2) hat bei mir funktioniert.
Fett
19

Angenommen, die Überschriften befinden sich in der ersten Zeile des Blattes, beginnend bei A1, und Sie wissen, wie viele davon es gibt, dann war dies meine Lösung:

$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);
Boojer
quelle
13

Benutze das:

$sheet->getStyle('A1:'.$sheet->getHighestColumn().'1')->getFont()->setBold(true);
Tom
quelle
10

Dies sind einige Tipps , um Ihre Zellen zu machen Bold, Big font,Italic

Angenommen, ich habe Spalten von AbisL

A1 - ist deine Startzelle

L1 - ist deine letzte Zelle

$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setSize(16);
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setItalic(true);
Vivek
quelle
7
$objPHPExcel->getActiveSheet()->getStyle("A1:".$objPHPExcel->getActiveSheet()->getHighestDataColumn()."1")->getFont()->setBold(true);

Ich fand, dass dies eine funktionierende Lösung ist. Sie können die beiden Instanzen von 1durch die Zeilennummer ersetzen . Die HighestDataColumnFunktion gibt beispielsweise C oder Z zurück und gibt Ihnen die letzte / höchste Spalte im Blatt, die Daten enthält. Es gibt auch getHighestColumn(), dass man Zellen einschließen würde, die leer sind, aber ein Styling haben oder Teil anderer Funktionen sind.

Arie
quelle
2

Dies durchläuft eine variable Anzahl von Spalten einer bestimmten Zeile, in diesem Fall der ersten Zeile:

$rownumber = 1;
$row = $this->objPHPExcel->getActiveSheet()->getRowIterator($rownumber)->current();

$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);

foreach ($cellIterator as $cell) {
    $cell->getStyle()->getFont()->setBold(true);
}
datasn.io
quelle
1

Versuche dies

    $ objPHPExcel = new PHPExcel ();
    $ objPHPExcel-> getProperties () -> setCreator ("Maarten Balliauw")
                                 -> setLastModifiedBy ("Maarten Balliauw")
                                 -> setTitle ("Office 2007 XLSX-Testdokument")
                                 -> setSubject ("Office 2007 XLSX-Testdokument")
                                 -> setDescription ("Testdokument für Office 2007 XLSX, generiert mit PHP-Klassen.")
                                 -> setKeywords ("office 2007 openxml php")
                                 -> setCategory ("Testergebnisdatei");
    $ objPHPExcel-> setActiveSheetIndex (0);
    $ sheet = $ objPHPExcel-> getActiveSheet ();
    $ sheet-> setCellValue ('A1', 'No');
    $ sheet-> setCellValue ('B1', 'Job ID');
    $ sheet-> setCellValue ('C1', 'Auftragsabschlussdatum');
    $ sheet-> setCellValue ('D1', 'Job Archived Date');
    $ styleArray = array (
        'font' => array (
        'fett' => wahr
        )
    );
    $ 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);
    

Dies ist eine Ausgabe wie unten angegeben ( https://www.screencast.com/t/ZkKFHbDq1le )

Suman Chauhan
quelle
-1

Du kannst es versuchen

$objPHPExcel->getActiveSheet()->getStyle(1)->getFont()->setBold(true);
user3808975
quelle