2014-02-28 7 views
8

Ich versuche, den Datentyp für eine ganze Spalte zu ändern (für zB: ich muss für "M" Spalte in das allgemeine Format ändern). Sein Anzeigen als 2.00 im Quantitätfeld, muss ich diese ganze Spalte zum allgemeinen Format dh ändern. Anzeige als "2". Aber es ändert nicht den Datentyp. Hierphpexcel - Wie Datentyp für ganze Spalte eines Excel ändern

ist der Code:

$objPHPExcel->getActiveSheet() 
    ->setCellValue(
     $aCells[$eExcelColumn] . $eExcelRow, 
     $sCellData , 
     PHPExcel_Cell_DataType::TYPE_NUMERIC 
    ); 

$objPHPExcel->getActiveSheet()->getStyle('M1:M97') 
    ->getNumberFormat() 
    ->setFormatCode('0'); 

Wie für die gesamte Spalte „M“ als allgemeines Format tun

Antwort

11

PHPExcel nicht Spalte oder Zeile Styling unterstützt: Sie den Stil festlegen müssen für ein range von Zellen, genau so, wie Sie mit

$objPHPExcel->getActiveSheet()->getStyle('M1:M97') 
->getNumberFormat() 
->setFormatCode('0'); 

tun, wenn Sie als '0'General Format eher wollen, dann setzen Sie es auf General Statt:

$objPHPExcel->getActiveSheet()->getStyle('M1:M97') 
    ->getNumberFormat() 
    ->setFormatCode('General'); 

oder

$objPHPExcel->getActiveSheet()->getStyle('M1:M97') 
    ->getNumberFormat() 
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL); 
+0

Danke für die Antwort, ich habe versuchte das oben, aber es ändert nicht das Format. –

+0

Es sollte das Format auf die Maskierung eingestellt werden, die Sie angeben, ob 'General' oder' 0' .... welche Version von PHPExcel verwenden Sie? Mit welchem ​​Writer speichern Sie Ihre Datei? –

+0

Hallo, ich benutze Version 14.0 –

3

Sie können eine Spalte wie folgt tun:

$objPHPExcel->getActiveSheet()->getStyle('M:M') 
    ->getNumberFormat() 
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL); 

Ein komplettes Arbeitsbeispiel. Das Ergebnis ist in der Spalte A hat zwei 2, Spalte B zwei 2,00

$sheet = $objPHPExcel->getActiveSheet(); 

$sheet->getStyle('A:A') 
     ->getNumberFormat() 
     ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL); 

$sheet->getStyle('B:B') 
     ->getNumberFormat() 
     ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00); 

$sheet->setCellValue('A1', 2); 
$sheet->setCellValue('A2', 2.0); 
$sheet->setCellValue('B1', 2); 
$sheet->setCellValue('B2', 2.0); 

Noch ein paar Beispiele für die Spalten- und Zeilenauswahlmöglichkeiten, die mich von meiner eigentlichen Basis gezogen:

$objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true); 
$objPHPExcel->getActiveSheet()->getStyle('A:A')->getNumberFormat()->setFormatCode('yyyy/mm'); 
$objPHPExcel->getActiveSheet()->getStyle('D:D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 
$objPHPExcel->getActiveSheet()->getStyle('E:E')->getNumberFormat()->setFormatCode('$#,###'); 
+0

Ich habe es gerade versucht und es funktioniert nicht. – blackandorangecat

+0

Als Mark 2014 antwortete, war er natürlich korrekt, und ich bin mir sicher, dass PHPExcel damals kein Zeilen- oder Spaltenstyling unterstützte. Aber ich habe den aktiven Code überprüft und benutze ihn jetzt ständig. Siehe meine bearbeitete Antwort. – Klompenrunner

+0

Interessant ... Ich habe es gerade noch einmal versucht, und es funktioniert nicht für mich. Ich weiß nicht, welche Version von 'PHPExcel' ich habe, aber wie bekomme ich' PHPExcel ## VERSION ##, ## DATE ## "' wenn ich '' echo PHPExcel_Calculation_Functions :: VERSION(); "' I ' Ich glaube dir, dass es funktioniert. – blackandorangecat

Verwandte Themen