Kaynağa Gözat

Merge pull request #72 from viest/dev

 FEAT(WriterRowIndex): Compatible string key value
王杰新 7 yıl önce
ebeveyn
işleme
ad7574e080
2 değiştirilmiş dosya ile 5 ekleme ve 6 silme
  1. 4 5
      kernel/excel.c
  2. 1 1
      kernel/write.c

+ 4 - 5
kernel/excel.c

@@ -276,8 +276,7 @@ PHP_METHOD(vtiful_xls, header)
  */
 PHP_METHOD(vtiful_xls, data)
 {
-    zval *data = NULL, *data_r_value = NULL, *data_l_value = NULL;
-    zend_long data_l_key;
+    zval *data = NULL, *data_r_value = NULL;
 
     ZEND_PARSE_PARAMETERS_START(1, 1)
             Z_PARAM_ARRAY(data)
@@ -291,9 +290,9 @@ PHP_METHOD(vtiful_xls, data)
         if(Z_TYPE_P(data_r_value) == IS_ARRAY) {
             SHEET_LINE_ADD(obj)
 
-            ZEND_HASH_FOREACH_NUM_KEY_VAL(Z_ARRVAL_P(data_r_value), data_l_key, data_l_value)
-                type_writer(data_l_value, SHEET_CURRENT_LINE(obj), data_l_key, &obj->ptr, NULL);
-                zval_ptr_dtor(data_l_value);
+            ZEND_HASH_FOREACH_BUCKET(Z_ARRVAL_P(data_r_value), Bucket *bucket)
+                type_writer(&bucket->val, SHEET_CURRENT_LINE(obj), bucket->h, &obj->ptr, NULL);
+                zval_ptr_dtor(&bucket->val);
             ZEND_HASH_FOREACH_END();
         }
     ZEND_HASH_FOREACH_END();

+ 1 - 1
kernel/write.c

@@ -29,7 +29,7 @@ void type_writer(zval *value, zend_long row, zend_long columns, xls_resource_t *
                 format_set_num_format(value_format, ZSTR_VAL(format));
                 worksheet_write_number(res->worksheet, row, columns, zval_get_long(value), value_format);
             } else {
-                worksheet_write_number(res->worksheet, row, columns, zval_get_double(value), NULL);
+                worksheet_write_number(res->worksheet, row, columns, zval_get_long(value), NULL);
             }
             break;
         case IS_DOUBLE: