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 のままになります。 0 を削除する必要はありませんが、明示的に Excel に通知する必要があります。

更新:申し訳ありませんが、忘れてしまいました。Excel は最初にのみ必要です '

于 2013-04-26T07:54:31.767 に答える
1

これを試して:

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

タイプジャグリングを読む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 に答える