我想明确地将单元格的数据类型设置为数值的文本。
我从MySQL数据库中获取数据并使用PHPExcel Library导出到excel文件。我有大约20个数字的长数字,我想导出到excel单元格(整个列的每个单元格将有不同的数字)。
我发现您可以通过PHPExcel Documentation 4.6.7。
中提到的代码执行此操作$i=0;
foreach($dd as $d) {
$objPHPExcel
->setActiveSheetIndex(0)
->getcell('A'.$i)
->setValueExplicit($d['serial_no'], PHPExcel_Cell_DataType::TYPE_STRING);
$i++;
}
$d['serial_no']
- 来自数据库的不同序列号,例如“9876543211234567890”。
我已经实现了这个代码,它的工作正常。但是,当我打开excel表并尝试修改该单元格,然后点击其他任何地方再次转换为数字格式(客户端的要求:它应保留为文本)。
即使我在其中编辑,我也希望将该单元格保留为文本。
答案 0 :(得分:3)
我没有对它进行测试,但可能将单元格设置为“quotePrefix”可能会阻止MS Excel在使用MS Excel编辑时尝试转换数据类型
$objPHPExcel->getActiveSheet()
->getStyle('A2:O128')
->setQuotePrefix(true);
仅限Excel2007
答案 1 :(得分:2)
$objPHPExcel->getActiveSheet()
->getStyle('A'.$i)
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_TEXT
);