PHPExcel - 在写入值之前设置单元格类型

时间:2013-06-17 08:24:55

标签: phpexcel

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

谢谢。

6 个答案:

答案 0 :(得分:25)

当文本是带前导零的数字时,请执行以下操作: (Cuando el texto esunnúmeroqueempieza por ceros,hacer)

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

答案 1 :(得分:19)

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

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

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

虽然“Number”不是有效的格式掩码。

您可以在Classes / PHPExcel / Style / NumberFormat.php中找到预定义格式掩码的列表,或将该值设置为任何有效的Excel数字格式掩码字符串。

答案 2 :(得分:4)

试试这个

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

答案 3 :(得分:1)

关注Mark的建议,并将其设置为整个工作簿中的默认数字格式:

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

它完美无瑕。谢谢Mark Ba​​ker。

答案 4 :(得分: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');

答案 5 :(得分:0)

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

您可以输入'A'影响整个列'。

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

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