在 Pdfmake 上格式化日期
Format a date on Pdfmake
我用过pdfmake library to export pdf content with the Angular UI Grid。你能告诉我如何格式化上面的日期吗?谢谢
目前显示是这样的:
Angular 网格是这样的:
{
name: app.localize('BrDateReceived'),
field: 'bpoHeaderPerformedFors[0].dateReceived',
cellFilter: 'date:\'MM/dd/yyyy\'',
width: 140,
},
很好的讨论: cellFilter does not work with the Pdfmake
更新
我发现 UI-grid 在 gridoptions 中有一个函数可以让你在每个单元格上回调。使用 angular-moment 和 gridoptions.exporterFieldCallback 我能够更改 PDF 中的每个单元格。查看此 plnkr.
中 app.js 文件中的第 43 至 47 行
另外,请注意我更新了下面的 link 以使用 angular-moment 和 github 上的正确回购协议。我之前使用的不是我推荐的那个。
祝你好运!
原答案
我建议将 angular-moment 导入您的应用程序,然后在您的文档定义中使用它。我以前成功地做到了这一点。像这样:
{text: 'DATE: ' + moment(bpoHeaderPerformedFors[0].dateReceived).format("MM-DD-YYYY")}
查看有关 angular-moment or full docs of momentjs 的更多信息(angular 版本基于)。
祝你好运!
答案是结合使用 exporterFieldCallback 函数和 angular 内置过滤器。首先包含 $filter:
app.controller('myController', ['$scope', '$filter', function ($scope,$filter){
然后在你的网格选项中:
$scope.gridOptions = {
exporterFieldCallback: function (grid, row, col, input)
{
if (col.name == 'myDateColumnName')
{
return $filter('date')(input, 'medium');
}
else
{
return input;
}
},
}
您可以使用任何您喜欢的日期过滤器类型,中等只是适合我目的的示例。
我使用的代码与 phattyD 所说的相同。我还要求使用 ui-grid 附带的默认单元格模板来执行此检查:
// Format the DATE
// http://ui-grid.info/docs/#/api/ui.grid.exporter.api:GridOptions
gridOptions.exporterFieldCallback = function ( grid, row, col, value ){
if ( col.colDef.cellTemplate == 'ui-grid/date-cell' || col.colDef.type == 'date' ){
value = $filter('date')(value, 'yyyy-MM-dd');
}
return value;
}
我附上我的完整代码以解决 Excel 和 CSV.
的相同情况
希望对您有所帮助
这是我的Plunkr。
我用过pdfmake library to export pdf content with the Angular UI Grid。你能告诉我如何格式化上面的日期吗?谢谢
目前显示是这样的:
Angular 网格是这样的:
{
name: app.localize('BrDateReceived'),
field: 'bpoHeaderPerformedFors[0].dateReceived',
cellFilter: 'date:\'MM/dd/yyyy\'',
width: 140,
},
很好的讨论: cellFilter does not work with the Pdfmake
更新
我发现 UI-grid 在 gridoptions 中有一个函数可以让你在每个单元格上回调。使用 angular-moment 和 gridoptions.exporterFieldCallback 我能够更改 PDF 中的每个单元格。查看此 plnkr.
中 app.js 文件中的第 43 至 47 行另外,请注意我更新了下面的 link 以使用 angular-moment 和 github 上的正确回购协议。我之前使用的不是我推荐的那个。
祝你好运!
原答案
我建议将 angular-moment 导入您的应用程序,然后在您的文档定义中使用它。我以前成功地做到了这一点。像这样:
{text: 'DATE: ' + moment(bpoHeaderPerformedFors[0].dateReceived).format("MM-DD-YYYY")}
查看有关 angular-moment or full docs of momentjs 的更多信息(angular 版本基于)。
祝你好运!
答案是结合使用 exporterFieldCallback 函数和 angular 内置过滤器。首先包含 $filter:
app.controller('myController', ['$scope', '$filter', function ($scope,$filter){
然后在你的网格选项中:
$scope.gridOptions = {
exporterFieldCallback: function (grid, row, col, input)
{
if (col.name == 'myDateColumnName')
{
return $filter('date')(input, 'medium');
}
else
{
return input;
}
},
}
您可以使用任何您喜欢的日期过滤器类型,中等只是适合我目的的示例。
我使用的代码与 phattyD 所说的相同。我还要求使用 ui-grid 附带的默认单元格模板来执行此检查:
// Format the DATE
// http://ui-grid.info/docs/#/api/ui.grid.exporter.api:GridOptions
gridOptions.exporterFieldCallback = function ( grid, row, col, value ){
if ( col.colDef.cellTemplate == 'ui-grid/date-cell' || col.colDef.type == 'date' ){
value = $filter('date')(value, 'yyyy-MM-dd');
}
return value;
}
我附上我的完整代码以解决 Excel 和 CSV.
的相同情况希望对您有所帮助
这是我的Plunkr。