Explorar el Código

Merge pull request #259 from viest/dev

Feat: set activate sheet
viest hace 5 años
padre
commit
53ec824e2c
Se han modificado 3 ficheros con 64 adiciones y 0 borrados
  1. 31 0
      kernel/excel.c
  2. 1 0
      package.xml
  3. 32 0
      tests/activate_sheet.phpt

+ 31 - 0
kernel/excel.c

@@ -90,6 +90,10 @@ ZEND_BEGIN_ARG_INFO_EX(xls_file_checkout_sheet, 0, 0, 1)
                 ZEND_ARG_INFO(0, sheet_name)
 ZEND_END_ARG_INFO()
 
+ZEND_BEGIN_ARG_INFO_EX(xls_file_activate_sheet, 0, 0, 1)
+                ZEND_ARG_INFO(0, sheet_name)
+ZEND_END_ARG_INFO()
+
 ZEND_BEGIN_ARG_INFO_EX(xls_header_arginfo, 0, 0, 1)
                 ZEND_ARG_INFO(0, header)
                 ZEND_ARG_INFO(0, format_handle)
@@ -373,6 +377,32 @@ PHP_METHOD(vtiful_xls, checkoutSheet)
 }
 /* }}} */
 
+/** {{{ \Vtiful\Kernel\Excel::activateSheet(string $sheetName)
+ */
+PHP_METHOD(vtiful_xls, activateSheet)
+{
+    lxw_worksheet *sheet_t = NULL;
+    zend_string *zs_sheet_name = NULL;
+
+    ZEND_PARSE_PARAMETERS_START(1, 1)
+            Z_PARAM_STR(zs_sheet_name)
+    ZEND_PARSE_PARAMETERS_END();
+
+    xls_object *obj = Z_XLS_P(getThis());
+
+    WORKBOOK_NOT_INITIALIZED(obj);
+
+    if ((sheet_t = workbook_get_worksheet_by_name(obj->write_ptr.workbook, ZSTR_VAL(zs_sheet_name))) == NULL) {
+        zend_throw_exception(vtiful_exception_ce, "Sheet not fund", 140);
+        return;
+    }
+
+    worksheet_activate(sheet_t);
+
+    RETURN_TRUE;
+}
+/* }}} */
+
 /** {{{ \Vtiful\Kernel\Excel::constMemory(string $fileName [, string $sheetName])
  */
 PHP_METHOD(vtiful_xls, constMemory)
@@ -1226,6 +1256,7 @@ zend_function_entry xls_methods[] = {
         PHP_ME(vtiful_xls, fileName,      xls_file_name_arginfo,      ZEND_ACC_PUBLIC)
         PHP_ME(vtiful_xls, addSheet,      xls_file_add_sheet,         ZEND_ACC_PUBLIC)
         PHP_ME(vtiful_xls, checkoutSheet, xls_file_checkout_sheet,    ZEND_ACC_PUBLIC)
+        PHP_ME(vtiful_xls, activateSheet, xls_file_activate_sheet,    ZEND_ACC_PUBLIC)
         PHP_ME(vtiful_xls, constMemory,   xls_const_memory_arginfo,   ZEND_ACC_PUBLIC)
         PHP_ME(vtiful_xls, header,        xls_header_arginfo,         ZEND_ACC_PUBLIC)
         PHP_ME(vtiful_xls, data,          xls_data_arginfo,           ZEND_ACC_PUBLIC)

+ 1 - 0
package.xml

@@ -175,6 +175,7 @@
    <file md5sum="723ed81ef341086cf06a1f2dade63f1a" name="tests/015.phpt" role="test" />
    <file md5sum="74d4d945e51fb79ffc7954e863a20712" name="tests/016.phpt" role="test" />
    <file md5sum="1f0d501c89c47d7140376ce386eb1cd3" name="tests/018.phpt" role="test" />
+   <file name="tests/activate_sheet.phpt" role="test" />
    <file md5sum="e6c41873fb59cf65b9e0359ccc2cbd05" name="tests/chart_axis_name_x.phpt" role="test" />
    <file md5sum="d07e7f60e961a1cc30f901cb98e3530b" name="tests/chart_axis_name_y.phpt" role="test" />
    <file md5sum="340ad766a0f9e10ccc7a65342838e08f" name="tests/chart_line.phpt" role="test" />

+ 32 - 0
tests/activate_sheet.phpt

@@ -0,0 +1,32 @@
+--TEST--
+Check for vtiful presence
+--SKIPIF--
+<?php if (!extension_loaded("xlswriter")) print "skip"; ?>
+--FILE--
+<?php
+$config = ['path' => './tests'];
+
+$fileObject = new \Vtiful\Kernel\Excel($config);
+
+$fileObject->fileName('tutorial.xlsx')
+    ->header(['name', 'age'])
+    ->data([
+    ['viest', 21],
+    ['viest', 22],
+    ['viest', 23],
+    ]);
+
+$fileObject->addSheet('twoSheet')
+    ->header(['name', 'age'])
+    ->data([['vikin', 22]]);
+
+var_dump($fileObject->activateSheet('twoSheet'));
+
+$fileObject->output();
+?>
+--CLEAN--
+<?php
+@unlink(__DIR__ . '/tutorial.xlsx');
+?>
+--EXPECT--
+bool(true)