phpexcel - Как изменить тип данных для всего столбца excel
Я пытаюсь изменить тип данных для целого столбца (например: мне нужно изменить столбец "M" на общий формат). Его отображение как 2.00
в поле количества, мне нужно изменить весь этот столбец на общий формат, т.Е.. отобразится как "2"
. Но это не меняет тип данных.
Вот код:
$objPHPExcel->getActiveSheet()
->setCellValue(
$aCells[$eExcelColumn] . $eExcelRow,
$sCellData ,
PHPExcel_Cell_DataType::TYPE_NUMERIC
);
$objPHPExcel->getActiveSheet()->getStyle('M1:M97')
->getNumberFormat()
->setFormatCode('0');
Как сделать для всего столбца "M" в общем формате
9
Author: Mark Baker, 2014-02-28
2 answers
PHPExcel не поддерживает стиль столбцов или строк: вам нужно установить стиль для range
ячеек точно так же, как вы делаете с
$objPHPExcel->getActiveSheet()->getStyle('M1:M97')
->getNumberFormat()
->setFormatCode('0');
Если вы хотите форматировать General
, а не '0'
, то вместо этого установите значение General
:
$objPHPExcel->getActiveSheet()->getStyle('M1:M97')
->getNumberFormat()
->setFormatCode('General');
Или
$objPHPExcel->getActiveSheet()->getStyle('M1:M97')
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL);
12
Author: Mark Baker, 2014-02-28 09:27:51
Вы можете сделать такой столбец:
$objPHPExcel->getActiveSheet()->getStyle('M:M')
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL);
Полный рабочий пример. Результат в столбце A имеет два 2, столбец B два 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);
Еще несколько примеров выбора столбцов и строк, которые я извлек из своей фактической базы:
$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('$#,###');
5
Author: Klompenrunner, 2017-08-18 22:56:00