Skip to content

Commit b79b791

Browse files
committed
Feat: existSheet
1 parent b3f9606 commit b79b791

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

kernel/excel.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ ZEND_BEGIN_ARG_INFO_EX(xls_file_add_sheet, 0, 0, 1)
8282
ZEND_ARG_INFO(0, sheet_name)
8383
ZEND_END_ARG_INFO()
8484

85+
ZEND_BEGIN_ARG_INFO_EX(xls_file_exist_sheet, 0, 0, 1)
86+
ZEND_ARG_INFO(0, sheet_name)
87+
ZEND_END_ARG_INFO()
88+
8589
ZEND_BEGIN_ARG_INFO_EX(xls_file_checkout_sheet, 0, 0, 1)
8690
ZEND_ARG_INFO(0, sheet_name)
8791
ZEND_END_ARG_INFO()
@@ -385,6 +389,32 @@ PHP_METHOD(vtiful_xls, addSheet)
385389
}
386390
/* }}} */
387391

392+
/** {{{ \Vtiful\Kernel\Excel::existSheet(string $sheetName)
393+
*/
394+
PHP_METHOD(vtiful_xls, existSheet)
395+
{
396+
char *sheet_name = NULL;
397+
zend_string *zs_sheet_name = NULL;
398+
399+
ZEND_PARSE_PARAMETERS_START(1, 1)
400+
Z_PARAM_STR(zs_sheet_name)
401+
ZEND_PARSE_PARAMETERS_END();
402+
403+
xls_object *obj = Z_XLS_P(getThis());
404+
405+
WORKBOOK_NOT_INITIALIZED(obj);
406+
SHEET_LINE_INIT(obj)
407+
408+
sheet_name = ZSTR_VAL(zs_sheet_name);
409+
410+
if (workbook_get_worksheet_by_name(obj->write_ptr.workbook, sheet_name)) {
411+
RETURN_TRUE;
412+
}
413+
414+
RETURN_FALSE;
415+
}
416+
/* }}} */
417+
388418
/** {{{ \Vtiful\Kernel\Excel::checkoutSheet(string $sheetName)
389419
*/
390420
PHP_METHOD(vtiful_xls, checkoutSheet)
@@ -1502,6 +1532,7 @@ zend_function_entry xls_methods[] = {
15021532
PHP_ME(vtiful_xls, close, xls_close_arginfo, ZEND_ACC_PUBLIC)
15031533
PHP_ME(vtiful_xls, fileName, xls_file_name_arginfo, ZEND_ACC_PUBLIC)
15041534
PHP_ME(vtiful_xls, addSheet, xls_file_add_sheet, ZEND_ACC_PUBLIC)
1535+
PHP_ME(vtiful_xls, existSheet, xls_file_exist_sheet, ZEND_ACC_PUBLIC)
15051536
PHP_ME(vtiful_xls, checkoutSheet, xls_file_checkout_sheet, ZEND_ACC_PUBLIC)
15061537
PHP_ME(vtiful_xls, activateSheet, xls_file_activate_sheet, ZEND_ACC_PUBLIC)
15071538
PHP_ME(vtiful_xls, constMemory, xls_const_memory_arginfo, ZEND_ACC_PUBLIC)

tests/exist_sheet.phpt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
--TEST--
2+
Check for vtiful presence
3+
--SKIPIF--
4+
<?php if (!extension_loaded("xlswriter")) print "skip"; ?>
5+
--FILE--
6+
<?php
7+
$config = ['path' => './tests'];
8+
9+
$fileObject = new \Vtiful\Kernel\Excel($config);
10+
11+
$fileObject->fileName('tutorial.xlsx')
12+
->addSheet('twoSheet');
13+
14+
var_dump($fileObject->existSheet('twoSheet'));
15+
var_dump($fileObject->existSheet('notFoundSheet'));
16+
?>
17+
--CLEAN--
18+
<?php
19+
@unlink(__DIR__ . '/tutorial.xlsx');
20+
?>
21+
--EXPECT--
22+
bool(true)
23+
bool(false)

0 commit comments

Comments
 (0)