phpexcel - 如何更改excel的整列的数据类型

Shi*_*ibu 9 php 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');
Run Code Online (Sandbox Code Playgroud)

如何将整列"M"作为一般格式

Mar*_*ker 13

PHPExcel不支持列样式或行样式:您需要为range单元格设置样式,与您一样

$objPHPExcel->getActiveSheet()->getStyle('M1:M97')
->getNumberFormat()
->setFormatCode('0');
Run Code Online (Sandbox Code Playgroud)

如果你想要General格式而不是'0',则将其设置为General:

$objPHPExcel->getActiveSheet()->getStyle('M1:M97')
    ->getNumberFormat()
    ->setFormatCode('General');
Run Code Online (Sandbox Code Playgroud)

要么

$objPHPExcel->getActiveSheet()->getStyle('M1:M97')
    ->getNumberFormat()
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL);
Run Code Online (Sandbox Code Playgroud)


Klo*_*ner 5

你可以这样做一个列:

$objPHPExcel->getActiveSheet()->getStyle('M:M')
    ->getNumberFormat()
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL);
Run Code Online (Sandbox Code Playgroud)

一个完整的工作示例.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);
Run Code Online (Sandbox Code Playgroud)

我从实际基数中提取的列和行选择的更多示例:

$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('$#,###');
Run Code Online (Sandbox Code Playgroud)

  • 根据root中的changelog.txt文件,我使用的是1.8.1版本.在Excel桌面应用程序中,输入数据的顺序和设置样式无关紧要.但是使用PHPExcel,你必须先设置样式,然后添加文本; 它对我来说不会相反. (3认同)