将单元格的数据类型明确设置为数字值的文本
Explicitly set a cell’s datatype as text for number values
我想明确地将单元格的数据类型设置为数字值的文本。
我正在从我的 MySQL 数据库中获取数据并使用 PHPExcel 库导出到 excel 文件。我有大约 20 位长的数字,我想将其导出到 excel 单元格(整列的每个单元格都有不同的数字)。
我发现您可以通过 PHPExcel 文档 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 sheet 并尝试修改该单元格然后单击其他任何地方时,它再次转换为数字格式(客户的要求:它应该保留为文本)。
我想将该单元格保留为文本,即使我在其中进行了编辑。
我没有测试过,但可能将单元格设置为 "quotePrefix" 可能会阻止 MS Excel 在使用 MS Excel[=11 编辑它时尝试转换数据类型=]
$objPHPExcel->getActiveSheet()
->getStyle('A2:O128')
->setQuotePrefix(true);
Excel仅限 2007 年
$objPHPExcel->getActiveSheet()
->getStyle('A'.$i)
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_TEXT
);
我想明确地将单元格的数据类型设置为数字值的文本。
我正在从我的 MySQL 数据库中获取数据并使用 PHPExcel 库导出到 excel 文件。我有大约 20 位长的数字,我想将其导出到 excel 单元格(整列的每个单元格都有不同的数字)。
我发现您可以通过 PHPExcel 文档 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 sheet 并尝试修改该单元格然后单击其他任何地方时,它再次转换为数字格式(客户的要求:它应该保留为文本)。
我想将该单元格保留为文本,即使我在其中进行了编辑。
我没有测试过,但可能将单元格设置为 "quotePrefix" 可能会阻止 MS Excel 在使用 MS Excel[=11 编辑它时尝试转换数据类型=]
$objPHPExcel->getActiveSheet()
->getStyle('A2:O128')
->setQuotePrefix(true);
Excel仅限 2007 年
$objPHPExcel->getActiveSheet()
->getStyle('A'.$i)
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_TEXT
);