我使用PhpOffice\PhpWord
作为我的Yii2和Microsoft字2016.
值数据类型decimal(15,2)
当我从我的项目字段值中显示microsoftwordfile.docx时显示10000.00
,但我需要10,000.00
如何配置/编码它们以显示10,000.00
此处 myController.php
public function actionWord($id)
{
Settings::setTempDir(Yii::getAlias('@webroot').'/temp/');
$templateProcessor = new TemplateProcessor(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
$model = Dataexample::findOne($id);
$templateProcessor->setValue(
[
'amount',
],
[
$model->amount,
]);
$templateProcessor->saveAs(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
echo Html::a('download', Url::to(Yii::getAlias('@web').'/path/to/microsoftwordfile.docx'), ['class' => 'btn btn-danger']);
}
答案 0 :(得分:1)
您可以使用yii\i18n\Formatter
格式化货币,它会为您提供
thousandSeparator
:显示为数千的角色 格式化时的分隔符(也称为分组分隔符)字符 号。
如果您使用 common\config\main.php
,请转到app-advanced
;如果 app/config/main.php
,请添加app-basic
关注components
数组。
'formatter' => [
'thousandSeparator' => ',',
'currencyCode' => 'USD',
],
现在您可以格式化任何给定的数字,如下所示
Yii::$app->formatter->asCurrency(100.25);
//will output
$100.25
Yii::$app->formatter->asCurrency(1000.25);
//will output
$1,000.25
Yii::$app->formatter->asCurrency(100000.25);
//will output
$100,000.25
你应该改变你的功能,如下所示
public function actionWord($id)
{
Settings::setTempDir(Yii::getAlias('@webroot').'/temp/');
$templateProcessor = new TemplateProcessor(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
$model = Dataexample::findOne($id);
$templateProcessor->setValue(
[
'amount',
],
[
Yii::$app->formatter->asCurrency($model->amount),
]);
$templateProcessor->saveAs(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
echo Html::a('download', Url::to(Yii::getAlias('@web').'/path/to/microsoftwordfile.docx'), ['class' => 'btn btn-danger']);
}
希望这有帮助。