@@ -12,17 +12,21 @@ export const getMetaInfo = columns =>
1212 export : column . csvExport === false ? false : true ,
1313 row : Number ( column . row ) || 0 ,
1414 rowSpan : Number ( column . rowSpan ) || 1 ,
15- colSpan : Number ( column . colSpan ) || 1
15+ colSpan : Number ( column . colSpan ) || 1 ,
16+ footer : column . footer ,
17+ footerFormatter : column . footerFormatter
1618 } ) )
1719 . filter ( _ => _ . export ) ;
1820
1921export const transform = (
2022 data ,
2123 meta ,
22- getValue ,
24+ columns ,
25+ _ ,
2326 {
2427 separator,
25- ignoreHeader
28+ ignoreHeader,
29+ ignoreFooter
2630 }
2731) => {
2832 const visibleColumns = meta . filter ( m => m . export ) ;
@@ -37,7 +41,7 @@ export const transform = (
3741 content += data
3842 . map ( ( row , rowIndex ) =>
3943 visibleColumns . map ( ( m ) => {
40- let cellContent = getValue ( row , m . field ) ;
44+ let cellContent = _ . get ( row , m . field ) ;
4145 if ( m . formatter ) {
4246 cellContent = m . formatter ( cellContent , row , rowIndex , m . formatExtraData ) ;
4347 }
@@ -47,6 +51,18 @@ export const transform = (
4751 return cellContent ;
4852 } ) . join ( separator ) ) . join ( '\n' ) ;
4953
54+ if ( ! ignoreFooter ) {
55+ content += '\n' ;
56+ content += visibleColumns . map ( ( m , i ) => {
57+ if ( typeof m . footer === 'function' ) {
58+ const columnData = _ . pluck ( data , columns [ i ] . dataField ) ;
59+ return `"${ m . footer ( columnData , columns [ i ] , i ) } "` ;
60+ } else if ( m . footerFormatter ) {
61+ return `"${ m . footerFormatter ( columns [ i ] , i ) } "` ;
62+ }
63+ return `"${ m . footer } "` ;
64+ } ) . join ( separator ) ;
65+ }
5066 return content ;
5167} ;
5268
0 commit comments