Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将包含2个数据的单元格导出到csv ag网格_Javascript_Angular_Typescript_Export To Csv_Ag Grid - Fatal编程技术网

Javascript 将包含2个数据的单元格导出到csv ag网格

Javascript 将包含2个数据的单元格导出到csv ag网格,javascript,angular,typescript,export-to-csv,ag-grid,Javascript,Angular,Typescript,Export To Csv,Ag Grid,我有一个网格,其中包含一些单元格2和3个数据。当我尝试将网格导出到csv文件时,这些列不会被导出。我相信在编写columnKeys时,我必须为它们编写特殊的代码。这是我的界面: 我尝试使用append(+)运算符,但没有成功。这是我的密码: import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Grid, GridApi } fr

我有一个网格,其中包含一些单元格2和3个数据。当我尝试将网格导出到
csv
文件时,这些列不会被导出。我相信在编写
columnKeys
时,我必须为它们编写特殊的代码。这是我的界面:

我尝试使用append(+)运算符,但没有成功。这是我的密码:

import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Grid, GridApi } from 'ag-grid-community';
import { AgGridAngular } from 'ag-grid-angular';
import { DealsService } from '../services/deals.service';
import * as moment from 'moment';
@Component({
  selector: 'app-deals',
  templateUrl: './deals.component.html',
  styleUrls: ['./deals.component.scss']
})
export class DealsComponent implements OnInit {
  private gridApi;
  gridOptions = {
    rowHeight :90,
    headerHeight:60,
    defaultColDef: {
      sortable: true
  },
  }
  columnDefs = [

    {headerName: 'Block' ,field:'BLOCKID',width:200, resizable:true,  filter: 'agNumberColumnFilter'} ,

    {headerName: 'Deal' ,field:'DEALID',width:200, resizable:true,    } ,
    {headerName: 'Deal Class' ,field:'DEALCLASS',width:200, resizable:true,  } ,
      {headerName: 'Instr Class' ,field:'INSTRCLASS',width:200, resizable:true,  } ,

     // {headerName: 'Trade \n Start',cellRendererFramework: DateCellRendererComponent ,width:210, resizable:true,  filter: 'agDateColumnFilter' } ,
      {headerName: 'Trade', field : 'TRADEDATE', valueFormatter : this.dateFormatter ,width:150, resizable:true,  filter : 'agDateColumnFilter', filterParams: {          //inRangeInclusive: true,
        comparator: function(filterLocalDateAtMidnight, cellValue) {
        //using moment js
        var dateAsString = moment(cellValue).format('DD/MM/YYYY');
        var dateParts = dateAsString.split("/");
        var cellDate = new Date(Number(dateParts[2]), Number(dateParts[1]) - 1, Number(dateParts[0]));

        if (filterLocalDateAtMidnight.getTime() == cellDate.getTime()) {
        return 0
        }

  if (cellDate < filterLocalDateAtMidnight) {
    return -1;
    }

    if (cellDate > filterLocalDateAtMidnight) {
    return 1;
    }
    }
    }}   ,
    {headerName: 'Start', field : 'STARTDATE', valueFormatter : this.dateFormatter ,width:200, resizable:true,  filter : 'agDateColumnFilter', filterParams: {          //inRangeInclusive: true,
      comparator: function(filterLocalDateAtMidnight, cellValue) {
      //using moment js
      var dateAsString = moment(cellValue).format('DD/MM/YYYY');
      var dateParts = dateAsString.split("/");
      var cellDate = new Date(Number(dateParts[2]), Number(dateParts[1]) - 1, Number(dateParts[0]));

      if (filterLocalDateAtMidnight.getTime() == cellDate.getTime()) {
      return 0
      }

      if (cellDate < filterLocalDateAtMidnight) {
      return -1;
      }

      if (cellDate > filterLocalDateAtMidnight) {
      return 1;
      }
      }
      }}   ,

  {headerName: 'Folder' ,field:'FOLDERSHORTNAME',filter:true ,width:200, resizable:true},
  {headerName: 'Cpty' ,field:'CPTYSHORTNAME',width:130, resizable:true, filter: true} ,
  ,
  {headerName: 'ShortName \n Name', cellRenderer: function(params){  return   params.data.INSTRSHORTNAME + '<br/>' + params.data.INSTRNAME },width:250, resizable:true, sortable: false} ,

  {headerName: 'Quantity \n Settl.Amt',cellRenderer: function(params){  return   params.data.QUANTITY + '<br/>' + params.data.SETTLEAMT + '\n'+ params.data.SETTLECURRENCIESSHORTNAME },width:200, resizable:true, sortable: false} ,
  {headerName: 'Rate \n Fees', cellRenderer: function(params){  return   params.data.FLOATINGRATESSHORTNAME + '<br/>' + params.data.RENTSPREADFIXEDRATE },width:200, resizable:true, sortable: false} ,
  {headerName: 'Category \n Type',cellRenderer: function(params){  return   params.data.DEALCAT + '<br/>' + params.data.DEALTYPE },width:200, resizable:true, sortable: false} ,
  {headerName: 'End', field : 'ENDDATE', valueFormatter : this.dateFormatter ,width:200, resizable:true,  filter : 'agDateColumnFilter', filterParams: {
    //inRangeInclusive: true,
    comparator: function(filterLocalDateAtMidnight, cellValue) {
    //using moment js
    var dateAsString = moment(cellValue).format('DD/MM/YYYY');
    var dateParts = dateAsString.split("/");
    var cellDate = new Date(Number(dateParts[2]), Number(dateParts[1]) - 1, Number(dateParts[0]));

    if (filterLocalDateAtMidnight.getTime() == cellDate.getTime()) {
    return 0
    }

    if (cellDate < filterLocalDateAtMidnight) {
    return -1;
    }

    if (cellDate > filterLocalDateAtMidnight) {
    return 1;
    }
    }
    }}   


];

rowData : any;

constructor(private service:DealsService) {



}
dateFormatter(params){
return moment(params.value).format('DD/MM/YYYY');
}

onBtExport() {
  var params = {
    columnSeparator: ';',
    columnKeys: ['BLOCKID','DEALID','DEALCLASS','INSTRCLASS','TRADEDATE','STARTDATE','FOLDERSHORTNAME','CPTYSHORTNAME','INSTRSHORTNAME' + 'INSTRNAME','QUANTITY'+ 'SETTLEAMT','FLOATINGRATESSHORTNAME'+'RENTSPREADFIXEDRATE','DEALCAT'+'DEALTYPE','ENDDATE']
  };



 this.gridApi.exportDataAsCsv(params);
}
onGridReady(params) {
  this.gridApi = params.api; 
}

ngOnInit() {
this.service.getDealsList().subscribe(data => {
  this.rowData = data;
});    }




}
从'@angular/core'导入{Component,OnInit};
从'@angular/common/http'导入{HttpClient};
从“ag Grid社区”导入{Grid,GridApi};
从'ag grid angular'导入{aggrid angular};
从“../services/deals.service”导入{deasservice};
从“时刻”导入*作为时刻;
@组成部分({
选择器:“应用程序交易”,
templateUrl:“./deals.component.html”,
样式URL:['./deals.component.scss']
})
导出类DealsComponent实现OnInit{
私有网格API;
网格选项={
行高:90,
人头数:60,,
默认值f:{
可排序:正确
},
}
columnDefs=[
{headerName:'Block',字段:'BLOCKID',宽度:200,可调整大小:true,过滤器:'agNumberColumnFilter'},
{headerName:'Deal',字段:'DEALID',宽度:200,可调整大小:true,},
{headerName:'Deal Class',字段:'Deal Class',宽度:200,可调整大小:true,},
{headerName:'Instr Class',字段:'INSTRCLASS',宽度:200,可调整大小:true,},
//{headerName:'Trade\n Start',CellRenderFramework:DateCellRenderComponent,宽度:210,可调整大小:true,筛选器:'agDateColumnFilter'},
{headerName:'Trade',字段:'TRADEDATE',valueFormatter:this.dateFormatter,宽度:150,可调整大小:true,筛选器:'agDateColumnFilter',filterParams:{//inRangeInclusive:true,
比较器:函数(filterLocalDateAtMidnight,cellValue){
//使用矩js
var dateAsString=时刻(cellValue).format('DD/MM/yyyyy');
var dateParts=dateAsString.split(“/”);
var cellDate=新日期(编号(日期部分[2]),编号(日期部分[1])-1,编号(日期部分[0]);
如果(filterLocalDateAtMidnight.getTime()==cellDate.getTime()){
返回0
}
if(cellDatefilterLocalDateAtMidnight){
返回1;
}
}
}}   ,
{headerName:'Start',field:'STARTDATE',valueFormatter:this.dateFormatter,宽度:200,可调整大小:true,筛选器:'agDateColumnFilter',filterParams:{//inRangeInclusive:true,
比较器:函数(filterLocalDateAtMidnight,cellValue){
//使用矩js
var dateAsString=时刻(cellValue).format('DD/MM/yyyyy');
var dateParts=dateAsString.split(“/”);
var cellDate=新日期(编号(日期部分[2]),编号(日期部分[1])-1,编号(日期部分[0]);
如果(filterLocalDateAtMidnight.getTime()==cellDate.getTime()){
返回0
}
if(cellDatefilterLocalDateAtMidnight){
返回1;
}
}
}}   ,
{headerName:'Folder',字段:'FOLDERSHORTNAME',筛选器:true,宽度:200,可调整大小:true},
{headerName:'Cpty',字段:'CPTYSHORTNAME',宽度:130,可调整大小:true,筛选器:true},
,
{headerName:'ShortName\n Name',cellRenderer:function(params){return params.data.INSTRSHORTNAME+'
'+params.data.INSTRNAME},宽度:250,可调整大小:true,可排序:false}, {headerName:'Quantity\n settle.Amt',cellRenderer:function(params){return params.data.Quantity+'
'+params.data.settleteamt+'\n'+params.data.settletecurrencesshortname},宽度:200,可调整大小:true,可排序:false}, {headerName:'Rate\n Fees',cellRenderer:function(params){return params.data.FLOATINGRATESSHORTNAME+'
'+params.data.RENTSPREADFIXEDRATE},宽度:200,可调整大小:true,可排序:false}, {headerName:'Category\n Type',cellRenderer:function(params){return params.data.DEALCAT+'
'+params.data.DEALTYPE},宽度:200,可调整大小:true,可排序:false}, {headerName:'End',field:'ENDDATE',valueFormatter:this.dateFormatter,宽度:200,可调整大小:true,筛选器:'agDateColumnFilter',filterParams:{ //是的, 比较器:函数(filterLocalDateAtMidnight,cellValue){ //使用矩js var dateAsString=时刻(cellValue).format('DD/MM/yyyyy'); var dateParts=dateAsString.split(“/”); var cellDate=新日期(编号(日期部分[2]),编号(日期部分[1])-1,编号(日期部分[0]); 如果(filterLocalDateAtMidnight.getTime()==cellDate.getTime()){ 返回0 } if(cellDatefilterLocalDateAtMidnight){ 返回1; } } }} ]; 行数据:任何; 构造函数(专用服务:解除服务){ } 日期格式化程序(参数){ 返回力矩(参数值)。格式('DD/MM/YYYY'); } onBtExport(){ 变量参数={ 列分隔符:';', 列键:['BLOCKID'、'DEALID'、'DEALCLASS'、'INSTRCLASS'、'TRADEDATE'、'STARTDATE'、'FOLDERSHORTNAME'、'CPTYSHORTNAME'、'INSTRSHORTNAME'+'INSTRNAME'、'QUANTITY'+'SettleMatt'、'FloatingMatherShortName'+'RentSpreadedFixedRate'、'DEALCAT'+'DEALTYPE'、'ENDDATE'] }; this.gridApi.exportDataAsCsv(params); } onGridReady(参数){ this.gridApi=params.api; } 恩戈尼尼特(){ this.service.getDealsList().subscribe(数据=>{ this.rowData=数据; }); } }

我非常感谢你的帮助。谢谢。

您需要使用与
cellRenderer
类似的功能定义
ValueGetter
(可能会删除

根据—

将使用原始值,而不是单元渲染器的结果, 意思是:

Cell Renderers will NOT be used.
Value Getters will be used.
Cell Formatters will NOT be used (use processCellCallback instead).

您需要使用与
cellRenderer
类似的函数定义
ValueGetter
(可能会删除

根据—

将使用原始值,而不是单元渲染器的结果, 意思是:

Cell Renderers will NOT be used.
Value Getters will be used.
Cell Formatters will NOT be used (use processCellCallback instead).

我们使用ag网格和Adaptive,它们具有导出功能,允许您