【发布时间】:2013-06-17 08:24:54
【问题描述】:
您知道如何在写入值之前设置单元格类型吗?我希望能够设置“常规”、“文本”和“数字”等类型。
谢谢。
【问题讨论】:
标签: phpexcel
您知道如何在写入值之前设置单元格类型吗?我希望能够设置“常规”、“文本”和“数字”等类型。
谢谢。
【问题讨论】:
标签: phpexcel
当文本是带有前导零的数字时,请执行以下操作: (Cuando el texto es un número que empieza por ceros, hacer)
$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', $val,PHPExcel_Cell_DataType::TYPE_STRING);
【讨论】:
与写入值后设置类型(数字格式掩码)的方式相同:
$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 数字格式掩码字符串。
【讨论】:
试试这个
$currencyFormat = '_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)';
$textFormat='@';//'General','0.00','@'
$excel->getActiveSheet()->getStyle('B1')->getNumberFormat()->setFormatCode($currencyFormat);
$excel->getActiveSheet()->getStyle('C1')->getNumberFormat()->setFormatCode($textFormat);`
【讨论】:
听从 Mark 的建议,将默认数字格式设置为整个工作簿中的文本:
$objPHPExcel = new PHPExcel();
$objPHPExcel->getDefaultStyle()
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_TEXT
);
而且它完美无缺。谢谢你,马克贝克。
【讨论】:
例如,我希望数字与从数据库中获得的数字相同。
00100.220000
00123
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');
【讨论】:
对于前导零和逗号分隔的数字:
你可以放'A'来影响整列'。
$objPHPExcel->getActiveSheet()->getStyle('A1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
然后你可以像往常一样写入单元格。
【讨论】: