21

你知道如何在写入值之前设置单元格类型吗?我希望能够设置“常规”、“文本”和“数字”等类型。

谢谢你。

4

6 回答 6

32

当文本是带有前导零的数字时,请执行以下操作: (Cuando el texto es un número que empieza por ceros, hacer)

$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', $val,PHPExcel_Cell_DataType::TYPE_STRING);
于 2015-09-24T15:12:30.947 回答
25

与在向其写入值后设置类型(数字格式掩码)的方式相同:

$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 数字格式掩码字符串。

于 2013-06-17T09:55:39.993 回答
4

尝试这个

$currencyFormat = '_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)';
$textFormat='@';//'General','0.00','@'
$excel->getActiveSheet()->getStyle('B1')->getNumberFormat()->setFormatCode($currencyFormat);
$excel->getActiveSheet()->getStyle('C1')->getNumberFormat()->setFormatCode($textFormat);`
于 2015-05-07T23:32:33.220 回答
3

遵循 Mark 的建议并执行此操作以将默认数字格式设置为整个工作簿中的文本:

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

它完美无缺。谢谢你,马克贝克。

于 2017-12-01T15:51:28.557 回答
1

例如,我希望数字与从数据库中获得的数字相同。

  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');
于 2017-12-11T11:13:01.497 回答
0

对于前导零和逗号分隔的数字:

你可以把'A'影响整个列'。

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

然后,您可以像往常一样写入单元格。

于 2019-06-26T06:58:57.350 回答