@@ -176,6 +176,11 @@ ZEND_BEGIN_ARG_INFO_EX(xls_put_csv_arginfo, 0, 0, 1)
176176 ZEND_ARG_INFO (0 , fp )
177177ZEND_END_ARG_INFO ()
178178
179+ ZEND_BEGIN_ARG_INFO_EX (xls_put_csv_callback_arginfo , 0 , 0 , 2 )
180+ ZEND_ARG_INFO (0 , callback )
181+ ZEND_ARG_INFO (0 , fp )
182+ ZEND_END_ARG_INFO ()
183+
179184ZEND_BEGIN_ARG_INFO_EX (xls_set_type_arginfo , 0 , 0 , 1 )
180185 ZEND_ARG_INFO (0 , zv_type_t )
181186ZEND_END_ARG_INFO ()
@@ -974,7 +979,36 @@ PHP_METHOD(vtiful_xls, putCSV)
974979
975980 zv_type = zend_read_property (vtiful_xls_ce , getThis (), ZEND_STRL (V_XLS_TYPE ), 0 , NULL );
976981
977- if (xlsx_to_csv (fp , obj -> read_ptr .sheet_t , zv_type , READ_SKIP_ROW ) == XLSWRITER_TRUE ) {
982+ if (xlsx_to_csv (fp , obj -> read_ptr .sheet_t , zv_type , READ_SKIP_ROW , NULL , NULL ) == XLSWRITER_TRUE ) {
983+ RETURN_TRUE ;
984+ }
985+
986+ RETURN_FALSE ;
987+ }
988+ /* }}} */
989+
990+ /** {{{ \Vtiful\Kernel\Excel::putCSVCallback()
991+ */
992+ PHP_METHOD (vtiful_xls , putCSVCallback )
993+ {
994+ zval * fp = NULL , * zv_type = NULL ;
995+ zend_fcall_info fci = empty_fcall_info ;
996+ zend_fcall_info_cache fci_cache = empty_fcall_info_cache ;
997+
998+ ZEND_PARSE_PARAMETERS_START (2 , 2 )
999+ Z_PARAM_FUNC (fci , fci_cache )
1000+ Z_PARAM_RESOURCE (fp )
1001+ ZEND_PARSE_PARAMETERS_END ();
1002+
1003+ xls_object * obj = Z_XLS_P (getThis ());
1004+
1005+ if (!obj -> read_ptr .sheet_t ) {
1006+ RETURN_FALSE ;
1007+ }
1008+
1009+ zv_type = zend_read_property (vtiful_xls_ce , getThis (), ZEND_STRL (V_XLS_TYPE ), 0 , NULL );
1010+
1011+ if (xlsx_to_csv (fp , obj -> read_ptr .sheet_t , zv_type , READ_SKIP_ROW , & fci , & fci_cache ) == XLSWRITER_TRUE ) {
9781012 RETURN_TRUE ;
9791013 }
9801014
@@ -1097,6 +1131,7 @@ zend_function_entry xls_methods[] = {
10971131 PHP_ME (vtiful_xls , openFile , xls_open_file_arginfo , ZEND_ACC_PUBLIC )
10981132 PHP_ME (vtiful_xls , openSheet , xls_open_sheet_arginfo , ZEND_ACC_PUBLIC )
10991133 PHP_ME (vtiful_xls , putCSV , xls_put_csv_arginfo , ZEND_ACC_PUBLIC )
1134+ PHP_ME (vtiful_xls , putCSVCallback , xls_put_csv_callback_arginfo , ZEND_ACC_PUBLIC )
11001135 PHP_ME (vtiful_xls , sheetList , NULL , ZEND_ACC_PUBLIC )
11011136 PHP_ME (vtiful_xls , setType , xls_set_type_arginfo , ZEND_ACC_PUBLIC )
11021137 PHP_ME (vtiful_xls , getSheetData , NULL , ZEND_ACC_PUBLIC )
0 commit comments