0

我使用pdfmake库通过Angular UI Grid导出 pdf 内容。你能告诉我如何格式化日期吗?谢谢。

目前它显示如下:

在此处输入图像描述

角网格是这样的:

在此处输入图像描述

 {
   name: app.localize('BrDateReceived'),
   field: 'bpoHeaderPerformedFors[0].dateReceived',
   cellFilter: 'date:\'MM/dd/yyyy\'',
   width: 140,
 },
4

3 回答 3

2

很好的讨论: cellFilter 不适用于 Pdfmake

更新

我发现 UI-grid 在 gridoptions 中有一个函数可以让你回调每个单元格。使用 angular-moment 和 gridoptions.exporterFieldCallback 我能够更改 PDF 中的每个单元格。查看此plnkr中 app.js 文件中的第 43 到 47 行。

另外,请注意,我更新了下面的链接以在 github 上使用 angular-moment 和正确的 repo。我之前使用的那个不是我推荐的那个。

祝你好运!

原始答案

我建议将 angular-moment 导入您的应用程序,然后在您的文档定义中使用它。我以前成功地做到了这一点。像这样:

{text: 'DATE: ' + moment(bpoHeaderPerformedFors[0].dateReceived).format("MM-DD-YYYY")}

查看有关angular-momentmomentjs的完整文档的更多信息(角度版本基于)。

祝你好运!

于 2016-01-25T04:58:22.767 回答
1

答案是结合使用 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;
        }
    },
}

你可以使用任何你喜欢的日期过滤器类型,中只是一个适合我目的的例子。

于 2016-02-23T03:26:17.367 回答
0

我使用了与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;
}

我附上我的完整代码来解决ExcelCSV的相同情况。

希望能帮助到你

这是我的Plunkr

于 2017-05-24T18:34:28.653 回答