2013-02-07 19 views
51

मैं पहली पंक्ति में कक्ष बनाने की कोशिश कर रहा हूं बोल्ड हैं।PHPExcel पहली पंक्ति बोल्ड

यह वह तरीका है जिसे मैंने उस उद्देश्य के लिए बनाया है।

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

समस्या आउटपुट एक्सेल फ़ाइल में है, कोशिकाएं बोल्ड नहीं हैं।

+1

क्या यह सभी पंक्तियों को बोल्ड कर रहा है या नहीं? –

+0

यह काम नहीं कर रहा है। – Rakesh

+0

क्या आपने $ cell_name को प्रतिबिंबित करने का प्रयास किया है? क्या यह सही सेलनाम दे रहा है? –

उत्तर

80

सेल की श्रेणी के लिए इस प्रयास करें:

$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); 

आशा में मदद करता है कि

+7

मैं आपके तर्क दोस्त को समझ नहीं सकता। $ cell_name में ए 1 है तो यह ए 1: ए 1 होगा। क्या आप इसका सुझाव दे रहे हैं? –

+4

नहीं, केवल ए 1 या ए 1: 2 कोशिकाओं के लिए बी 1 –

16

मान लिया जाये कि हेडर 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); 
+0

यह हेडर गतिशील संख्या के लिए सबसे अच्छा है! धन्यवाद। –

+0

हां, इस उत्तर के लिए धन्यवाद। यह वास्तविक जवाब होना चाहिए! –

40

इस

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

आप

$objPHPExcel->getActiveSheet()->getStyle(1)->getFont()->setBold(true); 
+0

यह काम नहीं करता है। –

20
$objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true); 

इस तरह आप पूरा पहली पंक्ति मिल कोशिश कर सकते हैं की कोशिश करो

+3

यह काम नहीं करता है। –

+0

हाँ, यह काम करता है। मैंने इसका परीक्षण किया। – ednincer

+0

मेरी तीसरी पंक्ति बोल्ड कैसे सेट करें? –

7

ये कुछ सुझाव दिए गए अपने सेल बनाने के लिए कर रहे हैं Bold, Big font, Italic

मान लीजिए कि मैं A से L

A1 करने के लिए कॉलम करते हैं - अपने अंतिम सेल

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

मैं इस पाया एक काम समाधान है, तो आप - अपने प्रारंभिक सेल

L1 है पंक्ति संख्या के साथ 1 के दो उदाहरणों को प्रतिस्थापित कर सकते हैं। उदाहरण के लिए HighestDataColumn फ़ंक्शन रिटर्न उदाहरण के लिए सी या जेड, यह आपको अंतिम/उच्चतम कॉलम देता है जो किसी भी डेटा वाले शीट में होता है। getHighestColumn() भी है, जिसमें कोई भी खाली कोशिकाएं शामिल करेगा लेकिन स्टाइल है या अन्य कार्यक्षमता का हिस्सा हैं।

1

किसी विशेष पंक्ति, जो इस मामले में 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); 
} 
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)