@@ -116,45 +116,43 @@ export function export_table_to_excel(id) {
116116 saveAs ( new Blob ( [ s2ab ( wbout ) ] , { type : "application/octet-stream" } ) , "test.xlsx" )
117117}
118118
119- export function export_json_to_excel ( th , jsonData , defaultTitle ) {
120-
119+ export function export_json_to_excel ( { header, data, filename= 'excel-list' , autoWidth= true } = { } ) {
121120 /* original data */
122-
123- var data = jsonData ;
124- data . unshift ( th ) ;
121+ data = [ ...data ]
122+ data . unshift ( header ) ;
125123 var ws_name = "SheetJS" ;
126-
127124 var wb = new Workbook ( ) , ws = sheet_from_array_of_arrays ( data ) ;
128125
129- /*设置worksheet每列的最大宽度*/
130- const colWidth = data . map ( row => row . map ( val => {
131- /*先判断是否为null/undefined*/
132- if ( val == null ) {
133- return { 'wch' : 10 } ;
134- }
135- /*再判断是否为中文*/
136- else if ( val . toString ( ) . charCodeAt ( 0 ) > 255 ) {
137- return { 'wch' : val . toString ( ) . length * 2 } ;
138- } else {
139- return { 'wch' : val . toString ( ) . length } ;
140- }
141- } ) )
142- /*以第一行为初始值*/
143- let result = colWidth [ 0 ] ;
144- for ( let i = 1 ; i < colWidth . length ; i ++ ) {
145- for ( let j = 0 ; j < colWidth [ i ] . length ; j ++ ) {
146- if ( result [ j ] [ 'wch' ] < colWidth [ i ] [ j ] [ 'wch' ] ) {
147- result [ j ] [ 'wch' ] = colWidth [ i ] [ j ] [ 'wch' ] ;
126+ if ( autoWidth ) {
127+ /*设置worksheet每列的最大宽度*/
128+ const colWidth = data . map ( row => row . map ( val => {
129+ /*先判断是否为null/undefined*/
130+ if ( val == null ) {
131+ return { 'wch' : 10 } ;
132+ }
133+ /*再判断是否为中文*/
134+ else if ( val . toString ( ) . charCodeAt ( 0 ) > 255 ) {
135+ return { 'wch' : val . toString ( ) . length * 2 } ;
136+ } else {
137+ return { 'wch' : val . toString ( ) . length } ;
138+ }
139+ } ) )
140+ /*以第一行为初始值*/
141+ let result = colWidth [ 0 ] ;
142+ for ( let i = 1 ; i < colWidth . length ; i ++ ) {
143+ for ( let j = 0 ; j < colWidth [ i ] . length ; j ++ ) {
144+ if ( result [ j ] [ 'wch' ] < colWidth [ i ] [ j ] [ 'wch' ] ) {
145+ result [ j ] [ 'wch' ] = colWidth [ i ] [ j ] [ 'wch' ] ;
146+ }
148147 }
149148 }
149+ ws [ '!cols' ] = result ;
150150 }
151- ws [ '!cols' ] = result ;
152151
153152 /* add worksheet to workbook */
154153 wb . SheetNames . push ( ws_name ) ;
155154 wb . Sheets [ ws_name ] = ws ;
156155
157156 var wbout = XLSX . write ( wb , { bookType : 'xlsx' , bookSST : false , type : 'binary' } ) ;
158- var title = defaultTitle || 'excel-list'
159- saveAs ( new Blob ( [ s2ab ( wbout ) ] , { type : "application/octet-stream" } ) , title + ".xlsx" )
157+ saveAs ( new Blob ( [ s2ab ( wbout ) ] , { type : "application/octet-stream" } ) , filename + ".xlsx" ) ;
160158}
0 commit comments