static GnmValue * cb_sylk_write_cell (GnmCellIter const *iter, SylkWriter *state) { GnmValue const *v; GnmExprTop const *texpr; GnmExprArrayCorner const *array; if (iter->pp.eval.row != state->cur_row) gsf_output_printf (state->output, "C;Y%d;X%d", (state->cur_row = iter->pp.eval.row) + 1, iter->pp.eval.col + 1); else gsf_output_printf (state->output, "C;X%d", iter->pp.eval.col + 1); if (NULL != (v = iter->cell->value)) { if (VALUE_IS_STRING (v)) { gsf_output_write (state->output, 3, ";K\""); sylk_write (state, v->v_str.val->str); gsf_output_write (state->output, 1, "\""); } else if (VALUE_IS_NUMBER (v) || VALUE_IS_ERROR (v)) { GString *res = g_string_sized_new (10); value_get_as_gstring (v, res, state->convs); gsf_output_write (state->output, 2, ";K"); gsf_output_write (state->output, res->len, res->str); g_string_free (res, TRUE); } /* ignore the rest */ } if (NULL != (texpr = iter->cell->base.texpr)) { if (NULL != (array = gnm_expr_top_get_array_corner (texpr))) { gsf_output_printf (state->output, ";R%d;C%d;M", iter->pp.eval.row + array->rows, iter->pp.eval.col + array->cols); } else if (gnm_expr_top_is_array_elem (texpr, NULL, NULL)) { gsf_output_write (state->output, 2, ";I"); texpr = NULL; } else gsf_output_write (state->output, 2, ";E"); if (texpr != NULL) { GnmConventionsOut out; out.accum = g_string_new (NULL); out.pp = &iter->pp; out.convs = state->convs; gnm_expr_top_as_gstring (texpr, &out); sylk_write (state, out.accum->str); g_string_free (out.accum, TRUE); } } gsf_output_write (state->output, 2, "\r\n"); return NULL; }
static void html_write_cell_content (GsfOutput *output, GnmCell *cell, GnmStyle const *style, char *formatted_string) { gsf_output_puts (output, "\""); if (style != NULL) { if (gnm_style_get_font_italic (style)) gsf_output_puts (output, "<i>"); if (gnm_style_get_font_bold (style)) gsf_output_puts (output, "<b>"); if (gnm_style_get_font_uline (style) != UNDERLINE_NONE) gsf_output_puts (output, "<u>"); if (font_is_monospaced (style)) gsf_output_puts (output, "<tt>"); if (gnm_style_get_font_strike (style)) gsf_output_puts (output, "<strike>"); switch (gnm_style_get_font_script (style)) { case GO_FONT_SCRIPT_SUB: gsf_output_puts (output, "<sub>"); break; case GO_FONT_SCRIPT_SUPER: gsf_output_puts (output, "<sup>"); break; default: break; } } if (cell != NULL) { const PangoAttrList * markup = NULL; if ((cell->value->type == VALUE_STRING) && (VALUE_FMT (cell->value) != NULL) && go_format_is_markup (VALUE_FMT (cell->value))) markup = go_format_get_markup (VALUE_FMT (cell->value)); if (markup != NULL) { GString *str = g_string_new (""); value_get_as_gstring (cell->value, str, NULL); html_new_markup (output, markup, str->str); g_string_free (str, TRUE); } else { html_print_encoded (output, formatted_string); } } if (style != NULL) { if (gnm_style_get_font_strike (style)) gsf_output_puts (output, "</strike>"); switch (gnm_style_get_font_script (style)) { case GO_FONT_SCRIPT_SUB: gsf_output_puts (output, "</sub>"); break; case GO_FONT_SCRIPT_SUPER: gsf_output_puts (output, "</sup>"); break; default: break; } if (font_is_monospaced (style)) gsf_output_puts (output, "</tt>"); if (gnm_style_get_font_uline (style) != UNDERLINE_NONE) gsf_output_puts (output, "</u>"); if (gnm_style_get_font_bold (style)) gsf_output_puts (output, "</b>"); if (gnm_style_get_font_italic (style)) gsf_output_puts (output, "</i>"); } gsf_output_puts (output, "\","); }
static void html_write_cell_content (GsfOutput *output, GnmCell *cell, GnmStyle const *style, html_version_t version) { guint r = 0; guint g = 0; guint b = 0; char *rendered_string; gboolean hidden = gnm_style_get_contents_hidden (style); GnmHLink* hlink = gnm_style_get_hlink (style); const guchar* hlink_target = NULL; if (hlink && GNM_IS_HLINK_URL (hlink)) { hlink_target = gnm_hlink_get_target (hlink); } if (version == HTML32 && hidden) gsf_output_puts (output, "<!-- 'HIDDEN DATA' -->"); else { if (style != NULL) { if (gnm_style_get_font_italic (style)) gsf_output_puts (output, "<i>"); if (gnm_style_get_font_bold (style)) gsf_output_puts (output, "<b>"); if (gnm_style_get_font_uline (style) != UNDERLINE_NONE) gsf_output_puts (output, "<u>"); if (font_is_monospaced (style)) gsf_output_puts (output, "<tt>"); if (gnm_style_get_font_strike (style)) { if (version == HTML32) gsf_output_puts (output, "<strike>"); else gsf_output_puts (output, "<span style=\"text-decoration: line-through;\">"); } switch (gnm_style_get_font_script (style)) { case GO_FONT_SCRIPT_SUB: gsf_output_puts (output, "<sub>"); break; case GO_FONT_SCRIPT_SUPER: gsf_output_puts (output, "<sup>"); break; default: break; } } if (hlink_target) gsf_output_printf (output, "<a href=\"%s\">", hlink_target); if (cell != NULL) { const PangoAttrList * markup = NULL; if (style != NULL && version != HTML40) { html_get_text_color (cell, style, &r, &g, &b); if (r > 0 || g > 0 || b > 0) gsf_output_printf (output, "<font color=\"#%02X%02X%02X\">", r, g, b); } if (VALUE_IS_STRING (cell->value) && (VALUE_FMT (cell->value) != NULL) && go_format_is_markup (VALUE_FMT (cell->value))) markup = go_format_get_markup (VALUE_FMT (cell->value)); if (markup != NULL) { GString *str = g_string_new (""); value_get_as_gstring (cell->value, str, NULL); html_new_markup (output, markup, str->str, version); g_string_free (str, TRUE); } else { rendered_string = gnm_cell_get_rendered_text (cell); html_print_encoded (output, rendered_string); g_free (rendered_string); } } if (r > 0 || g > 0 || b > 0) gsf_output_puts (output, "</font>"); if (hlink_target) gsf_output_puts (output, "</a>"); if (style != NULL) { if (gnm_style_get_font_strike (style)) { if (version == HTML32) gsf_output_puts (output, "</strike>"); else gsf_output_puts (output, "</span>"); } switch (gnm_style_get_font_script (style)) { case GO_FONT_SCRIPT_SUB: gsf_output_puts (output, "</sub>"); break; case GO_FONT_SCRIPT_SUPER: gsf_output_puts (output, "</sup>"); break; default: break; } if (font_is_monospaced (style)) gsf_output_puts (output, "</tt>"); if (gnm_style_get_font_uline (style) != UNDERLINE_NONE) gsf_output_puts (output, "</u>"); if (gnm_style_get_font_bold (style)) gsf_output_puts (output, "</b>"); if (gnm_style_get_font_italic (style)) gsf_output_puts (output, "</i>"); } } }