본문 바로가기

개발/PHP 라라벨

DataTables 엑셀 다운받기에서 셀렉트 박스

datatables 에 컬럼이 select box 가 포함된 경우 엑셀 다운받기를 하면 select box 에 포함된 option 들의 text 가 모두 포함된다.

 

내가 원하는 것은 선택된 option 의 text 값이므로 아래와 같이 datatables 옵션을 변경해 주었다.

 

			buttons: [
                        {extend: 'copyHtml5',className:'data-copy'},
                        {
                            extend: 'excelHtml5',
                            exportOptions : {
                                format: {
                                    body: function( data, row, col, node ) {
                                        if (col == 10) { // select box 가 있는 컬럼의 위치
                                            return window.dataTable
                                                .cell( {row: row, column: col} )
                                                .nodes()
                                                .to$()
                                                .find(':selected')
                                                .text()
                                        } else {
                                            return node.textContent;
                                            // 나머지는 텍스트로 넘김
                                        }
                                    }
                                }
                            },
                            className:'data-excel'
                        },
                        {extend: 'csvHtml5',className:'data-csv'},
                        {extend: 'print',className:'data-print'},
                        {
                            text: 'Alert',
                            action: function ( e, dt, node, config ) {
                                this.disable(); // disable button
                            }
                        }
                    ],