Skip to content

Commit ec2cd8a

Browse files
authored
Merge pull request #281 from viest/dev
Feat: url text and tool tip
2 parents 6bf7b9f + 2b2e293 commit ec2cd8a

File tree

4 files changed

+30
-13
lines changed

4 files changed

+30
-13
lines changed

include/xlswriter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,14 +209,14 @@ void set_row(zend_string *range, double height, xls_resource_write_t *res, lxw_f
209209
void set_column(zend_string *range, double width, xls_resource_write_t *res, lxw_format *format);
210210
void merge_cells(zend_string *range, zval *value, xls_resource_write_t *res, lxw_format *format);
211211
void comment_writer(zend_string *comment, zend_long row, zend_long columns, xls_resource_write_t *res);
212-
void url_writer(zend_long row, zend_long columns, xls_resource_write_t *res, zend_string *url, lxw_format *format);
213212
void call_object_method(zval *object, const char *function_name, uint32_t param_count, zval *params, zval *ret_val);
214213
void chart_writer(zend_long row, zend_long columns, xls_resource_chart_t *chart_resource, xls_resource_write_t *res);
215214
void worksheet_set_rows(lxw_row_t start, lxw_row_t end, double height, xls_resource_write_t *res, lxw_format *format);
216215
void image_writer(zval *value, zend_long row, zend_long columns, double width, double height, xls_resource_write_t *res);
217216
void formula_writer(zend_string *value, zend_long row, zend_long columns, xls_resource_write_t *res, lxw_format *format);
218217
void type_writer(zval *value, zend_long row, zend_long columns, xls_resource_write_t *res, zend_string *format, lxw_format *format_handle);
219218
void datetime_writer(lxw_datetime *datetime, zend_long row, zend_long columns, zend_string *format, xls_resource_write_t *res, lxw_format *format_handle);
219+
void url_writer(zend_long row, zend_long columns, xls_resource_write_t *res, zend_string *url, zend_string *text, zend_string *tool_tip, lxw_format *format);
220220

221221
lxw_error workbook_file(xls_resource_write_t *self);
222222

kernel/excel.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,12 @@ ZEND_BEGIN_ARG_INFO_EX(xls_insert_date_arginfo, 0, 0, 5)
124124
ZEND_ARG_INFO(0, format_handle)
125125
ZEND_END_ARG_INFO()
126126

127-
ZEND_BEGIN_ARG_INFO_EX(xls_insert_url_arginfo, 0, 0, 4)
127+
ZEND_BEGIN_ARG_INFO_EX(xls_insert_url_arginfo, 0, 0, 6)
128128
ZEND_ARG_INFO(0, row)
129129
ZEND_ARG_INFO(0, column)
130130
ZEND_ARG_INFO(0, url)
131+
ZEND_ARG_INFO(0, text)
132+
ZEND_ARG_INFO(0, tool_tip)
131133
ZEND_ARG_INFO(0, format)
132134
ZEND_END_ARG_INFO()
133135

@@ -658,16 +660,18 @@ PHP_METHOD(vtiful_xls, insertChart)
658660
PHP_METHOD(vtiful_xls, insertUrl)
659661
{
660662
zend_long row = 0, column = 0;
661-
zend_string *url = NULL;
662663
zval *format_handle = NULL;
664+
zend_string *url = NULL, *text = NULL, *tool_tip = NULL;
663665

664666
int argc = ZEND_NUM_ARGS();
665667

666-
ZEND_PARSE_PARAMETERS_START(3, 4)
668+
ZEND_PARSE_PARAMETERS_START(3, 6)
667669
Z_PARAM_LONG(row)
668670
Z_PARAM_LONG(column)
669671
Z_PARAM_STR(url)
670672
Z_PARAM_OPTIONAL
673+
Z_PARAM_STR(text)
674+
Z_PARAM_STR(tool_tip)
671675
Z_PARAM_RESOURCE(format_handle)
672676
ZEND_PARSE_PARAMETERS_END();
673677

@@ -677,12 +681,10 @@ PHP_METHOD(vtiful_xls, insertUrl)
677681

678682
WORKBOOK_NOT_INITIALIZED(obj);
679683

680-
if (argc == 4) {
681-
url_writer(row, column, &obj->write_ptr, url, zval_get_format(format_handle));
682-
}
683-
684-
if (argc == 3) {
685-
url_writer(row, column, &obj->write_ptr, url, obj->format_ptr.format);
684+
if (format_handle != NULL) {
685+
url_writer(row, column, &obj->write_ptr, url, text, tool_tip, zval_get_format(format_handle));
686+
} else {
687+
url_writer(row, column, &obj->write_ptr, url, text, tool_tip, obj->format_ptr.format);
686688
}
687689
}
688690
/* }}} */

kernel/write.c

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,24 @@ void format_copy(lxw_format *new_format, lxw_format *other_format)
161161
new_format->font_only = other_format->font_only;
162162
}
163163

164-
void url_writer(zend_long row, zend_long columns, xls_resource_write_t *res, zend_string *url, lxw_format *format)
164+
void url_writer(zend_long row, zend_long columns, xls_resource_write_t *res, zend_string *url, zend_string *text, zend_string *tool_tip, lxw_format *format)
165165
{
166-
worksheet_write_url(res->worksheet, (lxw_row_t)row, (lxw_col_t)columns, ZSTR_VAL(url), format);
166+
if (text == NULL && tool_tip == NULL) {
167+
worksheet_write_url_opt(res->worksheet, (lxw_row_t)row, (lxw_col_t)columns, ZSTR_VAL(url), format, NULL, NULL);
168+
return;
169+
}
170+
171+
if (text == NULL && tool_tip != NULL) {
172+
worksheet_write_url_opt(res->worksheet, (lxw_row_t)row, (lxw_col_t)columns, ZSTR_VAL(url), format, NULL, ZSTR_VAL(tool_tip));
173+
return;
174+
}
175+
176+
if (text != NULL && tool_tip == NULL) {
177+
worksheet_write_url_opt(res->worksheet, (lxw_row_t)row, (lxw_col_t)columns, ZSTR_VAL(url), format, ZSTR_VAL(text), NULL);
178+
return;
179+
}
180+
181+
worksheet_write_url_opt(res->worksheet, (lxw_row_t)row, (lxw_col_t)columns, ZSTR_VAL(url), format, ZSTR_VAL(text), ZSTR_VAL(tool_tip));
167182
}
168183

169184
/*

tests/insert_url_format.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ $filePath = $fileObject->header(['name', 'age'])
2323
['viest', 21],
2424
['wjx', 21]
2525
])
26-
->insertUrl(3, 0, 'https://github.com', $alignStyle)
26+
->insertUrl(3, 0, 'https://github.com', NULL, NULL, $alignStyle)
2727
->output();
2828

2929
var_dump($filePath);

0 commit comments

Comments
 (0)