0

我想在属性名称前显示单元编号。我在$arrobjPropertyName数组对象中获取了我的数据,并在 foreach 循环中将其打印为

foreach( $arrobjPropertyName as $objProperty ) {
    $objWriteExcelWorksheet->write( $intRowCount, $intColumnCount++, $objProperty->getUnitNumber(), $objWorkbookContent );}

它会给出输出 613 或 722 但我希望它像 excel 记录中的 0613 或 0722 一样。

欢迎任何建议。

4

3 回答 3

1
foreach( $arrobjPropertyName as $objProperty ) {
    $objWriteExcelWorksheet->write( $intRowCount, $intColumnCount++, "'" . $objProperty->getUnitNumber(), $objWorkbookContent );}

你应该告诉excel它是一个字符串。否则它将解释为数字并删除所有前导 0。

更详细地说:如果您在 Excel 中手动输入 0123,它将自动转换为 123。如果您在 Excel 中手动输入 '0123,它将保持像 0123。因此,不仅 php 必须知道它是一个字符串(这样 php 才可以'不要删除 0。但您还必须明确告诉 Excell。

更新:对不起,忘记了,excel 只需要先'

于 2013-04-26T07:54:31.767 回答
1

尝试这个:

foreach( $arrobjPropertyName as $objProperty ) {
    $newNumber='0'.$objProperty->getUnitNumber();
    $objWriteExcelWorksheet->write( $intRowCount, $intColumnCount++,(string)$newNumber, $objWorkbookContent );
}

阅读 Type Juggling http://php.net/manual/en/language.types.type-juggling.php

于 2013-04-26T07:56:54.160 回答
0

您可以使用sprintf生成固定宽度的数字字符串。

$textnum = sprintf("%04d", $objProperty->getUnitNumber());

sprintf如果有必要将其识别为字符串,还可以帮助将数字封装在引号中:

$textnum = sprintf("'%04d'", $objProperty->getUnitNumber());

于 2013-04-26T07:57:19.637 回答