0
phpexcelドキュメントを作成するときにカスタムフォントサイズを設定しました。CodeigniterとPHPexcelのフォントサイズが最初の行で変更されない
何らかの理由で、フォントサイズが最初の行で変更されません。
質問:どのようにすべての行は、私がメインコントローラ上のforeachループ内のコードを持っていますが、セルの最初の行を欠場ヘッダー行
含む同じサイズを持っていることを確認します。
$styleArray = array(
'font' => array(
'size' => 15,
'name' => 'Candara'
));
$objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->applyFromArray($styleArray);
$objPHPExcel->getActiveSheet()->getStyle($objPHPExcel->getActiveSheet()->calculateWorksheetDimension())->applyFromArray($styleArray2);
コントローラ
<?php
class Events extends MX_Controller {
public function generate_excel() {
$query = $this->db->get('event');
$excelresults = $query->result_array();
require (APPPATH . 'third_party/PHPExcel-1.8/Classes/PHPExcel.php');
require (APPPATH . 'third_party/PHPExcel-1.8/Classes/PHPExcel/Writer/Excel2007.php');
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("");
$objPHPExcel->getProperties()->setLastModifiedBy("");
$objPHPExcel->getProperties()->setSubject("");
$objPHPExcel->getProperties()->setCreator("");
$objPHPExcel->getProperties()->setDescription("");
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue("A1", 'Event');
$objPHPExcel->getActiveSheet()->SetCellValue("B1", 'Event Title');
$objPHPExcel->getActiveSheet()->SetCellValue("C1", 'Event Date');
$objPHPExcel->getActiveSheet()->SetCellValue("D1", 'Event Start Time');
$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
$objPHPExcel->getActiveSheet()->setPrintGridlines(TRUE);
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
$excelrow = 2;
foreach ($excelresults as $excelresult => $excelvalue) {
$styleArray = array(
'font' => array(
'size' => 15,
'name' => 'Candara'
));
$objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->applyFromArray($styleArray);
if (!empty($excelvalue['fill_color'])) {
// Set the fill style
$objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
// Set the colour for the fill
$objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->getFill()->getStartColor()->setRGB($excelvalue['fill_color']);
$styleArray1 = array(
'font' => array(
'color' => array('rgb' => $excelvalue['font_color']),
)
);
$objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->applyFromArray($styleArray1);
$objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->getAlignment()->setIndent(2);
}
$objPHPExcel->getActiveSheet()->SetCellValue("A" . $excelrow, $excelvalue['event']);
$objPHPExcel->getActiveSheet()->SetCellValue("B" . $excelrow, $excelvalue['event_title']);
$objPHPExcel->getActiveSheet()->SetCellValue("C" . $excelrow, $excelvalue['event_date']);
$objPHPExcel->getActiveSheet()->SetCellValue("D" . $excelrow, $excelvalue['event_start_time']);
$excelrow++;
}
///exit();
$filename = 'Bowling-Events-For-' . date('Y') . '.xlsx';
$objPHPExcel->getProperties()->setTitle("Riwaka Bowling Club Events");
header("Content-Type: application/vnd.ms-excel; charset=utf-8"); # Important
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".$filename."");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit();
}
}
私は塗りつぶしの色を使用している可能性がありますか? – user4419336
下部にはパディングがあるようですが、塗りつぶしの色を使用しているためではなく、上部にはパディングがありません。 – user4419336
あなたが私のところで見ることができるように、それはFFFFFF塗りつぶし色を使用しています。別のExcel版などがあれば怖いです。私はオフィスを使用しています2013 btw –