PHPExcel - установить тип ячейки перед записью в нее значения

Вы знаете, как я могу установить тип ячейки перед записью в нее значения? Я хотел бы иметь возможность устанавливать такие типы, как "Общие", "Текст" и "Число".

Спасибо.

Ответ 1

Когда текст является числом с ведущими нулями, тогда выполните: (Cuando el texto es un número que empieza por ceros, hacer)

$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', $val,PHPExcel_Cell_DataType::TYPE_STRING);

Ответ 2

Точно так же, как вы задали тип (маску формата номера) после записи значения на него:

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

или

$objPHPExcel->getActiveSheet()
    ->getStyle('A1')
    ->getNumberFormat()
    ->setFormatCode(
        PHPExcel_Style_NumberFormat::FORMAT_TEXT
    );

Хотя "Число" не является допустимой маской формата.

Вы можете найти список предопределенных масок формата в Classes/PHPExcel/Style/NumberFormat.php или установить значение для любой допустимой строки маскировки формата номера Excel.

Ответ 3

попробуй это

$currencyFormat = '_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)';
$textFormat='@';//'General','0.00','@'
$excel->getActiveSheet()->getStyle('B1')->getNumberFormat()->setFormatCode($currencyFormat);
$excel->getActiveSheet()->getStyle('C1')->getNumberFormat()->setFormatCode($textFormat);'

Ответ 4

Затем следуйте указаниям Mark и сделайте это, чтобы установить форматирование по умолчанию для текста во всей книге:

$objPHPExcel = new PHPExcel(); 
$objPHPExcel->getDefaultStyle()
    ->getNumberFormat()
    ->setFormatCode(
        PHPExcel_Style_NumberFormat::FORMAT_TEXT
    );

И это работает безупречно. Спасибо, Марк Бейкер.

Ответ 5

Я хотел, чтобы номер был таким же, как я, например, из базы данных.

1) 00100.220000

2) 00123

3) 0000.0000100

Поэтому я изменил код, как показано ниже.

$objPHPExcel->getActiveSheet()
    ->setCellValue('A3', '00100.220000');
$objPHPExcel->getActiveSheet()
    ->getStyle('A3')
    ->getNumberFormat()
    ->setFormatCode('00000.000000');


$objPHPExcel->getActiveSheet()
    ->setCellValue('A4', '00123');
$objPHPExcel->getActiveSheet()
  ->getStyle('A4')
 ->getNumberFormat()
->setFormatCode('00000');


$objPHPExcel->getActiveSheet()
    ->setCellValue('A5', '0000.0000100');
$objPHPExcel->getActiveSheet()
  ->getStyle('A5')
 ->getNumberFormat()
->setFormatCode('0000.0000000');

Ответ 6

Для чисел с ведущими нулями и запятыми:

Вы можете поставить "А", чтобы повлиять на весь столбец ".

$objPHPExcel->getActiveSheet()->getStyle('A1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);

Затем вы можете написать в ячейку, как обычно.