@@ -137,6 +137,7 @@ ZEND_BEGIN_ARG_INFO_EX(xls_insert_formula_arginfo, 0, 0, 3)
137137 ZEND_ARG_INFO (0 , row )
138138 ZEND_ARG_INFO (0 , column )
139139 ZEND_ARG_INFO (0 , formula )
140+ ZEND_ARG_INFO (0 , format_handle )
140141ZEND_END_ARG_INFO ()
141142
142143ZEND_BEGIN_ARG_INFO_EX (xls_auto_filter_arginfo , 0 , 0 , 1 )
@@ -146,6 +147,7 @@ ZEND_END_ARG_INFO()
146147ZEND_BEGIN_ARG_INFO_EX (xls_merge_cells_arginfo , 0 , 0 , 2 )
147148 ZEND_ARG_INFO (0 , range )
148149 ZEND_ARG_INFO (0 , data )
150+ ZEND_ARG_INFO (0 , format_handle )
149151ZEND_END_ARG_INFO ()
150152
151153ZEND_BEGIN_ARG_INFO_EX (xls_set_column_arginfo , 0 , 0 , 3 )
@@ -625,13 +627,18 @@ PHP_METHOD(vtiful_xls, insertImage)
625627 */
626628PHP_METHOD (vtiful_xls , insertFormula )
627629{
630+ zval * format_handle = NULL ;
628631 zend_string * formula = NULL ;
629632 zend_long row = 0 , column = 0 ;
630633
631- ZEND_PARSE_PARAMETERS_START (3 , 3 )
634+ int argc = ZEND_NUM_ARGS ();
635+
636+ ZEND_PARSE_PARAMETERS_START (3 , 4 )
632637 Z_PARAM_LONG (row )
633638 Z_PARAM_LONG (column )
634639 Z_PARAM_STR (formula )
640+ Z_PARAM_OPTIONAL
641+ Z_PARAM_RESOURCE (format_handle )
635642 ZEND_PARSE_PARAMETERS_END ();
636643
637644 ZVAL_COPY (return_value , getThis ());
@@ -640,7 +647,13 @@ PHP_METHOD(vtiful_xls, insertFormula)
640647
641648 WORKBOOK_NOT_INITIALIZED (obj );
642649
643- formula_writer (formula , row , column , & obj -> write_ptr , obj -> format_ptr .format );
650+ if (argc == 3 ) {
651+ formula_writer (formula , row , column , & obj -> write_ptr , obj -> format_ptr .format );
652+ }
653+
654+ if (argc == 4 ) {
655+ formula_writer (formula , row , column , & obj -> write_ptr , zval_get_format (format_handle ));
656+ }
644657}
645658/* }}} */
646659
@@ -668,11 +681,16 @@ PHP_METHOD(vtiful_xls, autoFilter)
668681 */
669682PHP_METHOD (vtiful_xls , mergeCells )
670683{
684+ zval * format_handle = NULL ;
671685 zend_string * range = NULL , * data = NULL ;
672686
673- ZEND_PARSE_PARAMETERS_START (2 , 2 )
687+ int argc = ZEND_NUM_ARGS ();
688+
689+ ZEND_PARSE_PARAMETERS_START (2 , 3 )
674690 Z_PARAM_STR (range )
675691 Z_PARAM_STR (data )
692+ Z_PARAM_OPTIONAL
693+ Z_PARAM_RESOURCE (format_handle )
676694 ZEND_PARSE_PARAMETERS_END ();
677695
678696 ZVAL_COPY (return_value , getThis ());
@@ -681,7 +699,13 @@ PHP_METHOD(vtiful_xls, mergeCells)
681699
682700 WORKBOOK_NOT_INITIALIZED (obj );
683701
684- merge_cells (range , data , & obj -> write_ptr );
702+ if (argc == 3 ) {
703+ merge_cells (range , data , & obj -> write_ptr , obj -> format_ptr .format );
704+ }
705+
706+ if (argc == 4 ) {
707+ merge_cells (range , data , & obj -> write_ptr , zval_get_format (format_handle ));
708+ }
685709}
686710/* }}} */
687711
0 commit comments