office-gobmx/sc
Hossein 830ba03622 Fix unwanted code behavior change in sc/
While changing the code to use std::optional instead of bool, some
unwanted code behavior changes were introduced in this commit:

commit fbe8071e4f
Date:   Sat Oct 15 14:20:31 2022 +0200

    refactor functions: return optional instead of bool

Part of those unwanted changes are fixed in this commit:

commit 243e811abc
Date:   Wed Jun 5 10:14:49 2024 +0100

    cid#1603200 Uninitialized scalar variable

    cid#1603199 Uninitialized scalar variable

This commit undoes changes in the above (second) commit, and tries to fix
the problems by making the code look closer to what it was before the
first commit.

Change-Id: I47d692a5cf46abad582d7f162e2180e6c26b7e5d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169037
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
2024-07-01 11:23:28 +02:00
..
inc Related: tdf#127293 Ignore 'search-criteria-must-apply-to-whole-cell' 2024-06-27 18:06:21 +02:00
qa Related: tdf#127293 Ignore 'search-criteria-must-apply-to-whole-cell' 2024-06-27 18:06:21 +02:00
res/xml
sdi Resolves tdf#64028 - Command to retain source cell on cut 2024-06-20 15:15:56 +02:00
source Fix unwanted code behavior change in sc/ 2024-07-01 11:23:28 +02:00
uiconfig/scalc Resave with newer Glade version 2024-06-27 03:13:44 +02:00
util
workben
AllLangMoTarget_sc.mk
common_unoapi_tests.mk
CppunitTest_sc_a11y.mk
CppunitTest_sc_addin_functions_test.mk
CppunitTest_sc_anchor_test.mk
CppunitTest_sc_annotationobj.mk
CppunitTest_sc_annotationshapeobj.mk
CppunitTest_sc_annotationsobj.mk
CppunitTest_sc_arealinkobj.mk
CppunitTest_sc_arealinksobj.mk
CppunitTest_sc_array_functions_test.mk
CppunitTest_sc_autoformatobj.mk
CppunitTest_sc_autoformatsobj.mk
CppunitTest_sc_cache_test.mk
CppunitTest_sc_cellcursorobj.mk
CppunitTest_sc_cellfieldsobj.mk
CppunitTest_sc_cellformatsenumeration.mk
CppunitTest_sc_cellformatsobj.mk
CppunitTest_sc_cellobj.mk
CppunitTest_sc_cellrangeobj.mk
CppunitTest_sc_cellrangesobj.mk
CppunitTest_sc_cellsearchobj.mk
CppunitTest_sc_cellsenumeration.mk
CppunitTest_sc_cellsobj.mk
CppunitTest_sc_chart2dataprovider.mk
CppunitTest_sc_chartobj.mk
CppunitTest_sc_chartsobj.mk
CppunitTest_sc_check_data_pilot_field.mk
CppunitTest_sc_check_data_pilot_table.mk
CppunitTest_sc_check_xcell_ranges_query.mk
CppunitTest_sc_cond_format_merge.mk
CppunitTest_sc_consolidationdescriptorobj.mk
CppunitTest_sc_copypaste.mk CppunitTest_sc_copypaste: inherit from ScModelTestBase 2024-06-14 16:37:45 +02:00
CppunitTest_sc_core.mk
CppunitTest_sc_database_functions_test.mk
CppunitTest_sc_databaserangeobj.mk
CppunitTest_sc_databaserangesobj.mk
CppunitTest_sc_datapilotfieldgroupitemobj.mk
CppunitTest_sc_datapilotfieldgroupobj.mk
CppunitTest_sc_datapilotfieldgroupsobj.mk
CppunitTest_sc_datapilotfieldobj.mk
CppunitTest_sc_datapilotfieldsobj.mk
CppunitTest_sc_datapilotitemobj.mk
CppunitTest_sc_datapilotitemsobj.mk
CppunitTest_sc_datapilottableobj.mk
CppunitTest_sc_datapilottablesobj.mk
CppunitTest_sc_dataprovider.mk
CppunitTest_sc_datetime_functions_test.mk
CppunitTest_sc_ddelinkobj.mk
CppunitTest_sc_ddelinksobj.mk
CppunitTest_sc_documentconfigurationobj.mk
CppunitTest_sc_drawpageobj.mk
CppunitTest_sc_drawpagesobj.mk
CppunitTest_sc_editfieldobj_cell.mk
CppunitTest_sc_editfieldobj_header.mk
CppunitTest_sc_filter_html.mk
CppunitTest_sc_filterdescriptorbase.mk
CppunitTest_sc_filters_test.mk
CppunitTest_sc_financial_functions_test.mk
CppunitTest_sc_functiondescriptionobj.mk
CppunitTest_sc_functionlistobj.mk
CppunitTest_sc_functions_test_old.mk
CppunitTest_sc_goal_seek_test.mk tdf#161511: sc_goal_seek: Add unittest 2024-06-14 19:49:43 +02:00
CppunitTest_sc_headerfieldsobj.mk
CppunitTest_sc_headerfootercontentobj.mk
CppunitTest_sc_html_export_test.mk
CppunitTest_sc_importdescriptorbaseobj.mk
CppunitTest_sc_indexenumeration_cellannotationsenumeration.mk
CppunitTest_sc_indexenumeration_cellarealinksenumeration.mk
CppunitTest_sc_indexenumeration_databaserangesenumeration.mk
CppunitTest_sc_indexenumeration_datapilotfieldsenumeration.mk
CppunitTest_sc_indexenumeration_datapilotitemsenumeration.mk
CppunitTest_sc_indexenumeration_datapilottablesenumeration.mk
CppunitTest_sc_indexenumeration_ddelinksenumeration.mk
CppunitTest_sc_indexenumeration_functiondescriptionenumeration.mk
CppunitTest_sc_indexenumeration_labelrangesenumeration.mk
CppunitTest_sc_indexenumeration_namedrangesenumeration.mk
CppunitTest_sc_indexenumeration_scenariosenumeration.mk
CppunitTest_sc_indexenumeration_sheetcellrangesenumeration.mk
CppunitTest_sc_indexenumeration_sheetlinksenumeration.mk
CppunitTest_sc_indexenumeration_spreadsheetsenumeration.mk
CppunitTest_sc_indexenumeration_spreadsheetviewpanesenumeration.mk
CppunitTest_sc_indexenumeration_subtotalfieldsenumeration.mk
CppunitTest_sc_indexenumeration_tableautoformatenumeration.mk
CppunitTest_sc_indexenumeration_tablechartsenumeration.mk
CppunitTest_sc_indexenumeration_tablecolumnsenumeration.mk
CppunitTest_sc_indexenumeration_tableconditionalentryenumeration.mk
CppunitTest_sc_indexenumeration_tablerowsenumeration.mk
CppunitTest_sc_indexenumeration_textfieldenumeration.mk
CppunitTest_sc_information_functions_test.mk
CppunitTest_sc_jumbosheets_test.mk
CppunitTest_sc_labelrangeobj.mk
CppunitTest_sc_labelrangesobj.mk
CppunitTest_sc_logical_functions_test.mk
CppunitTest_sc_macros_test.mk
CppunitTest_sc_mark_test.mk
CppunitTest_sc_mathematical_functions_test.mk
CppunitTest_sc_modelobj.mk
CppunitTest_sc_namedrangeobj.mk
CppunitTest_sc_namedrangesobj.mk
CppunitTest_sc_new_cond_format_api.mk
CppunitTest_sc_opencl-1.mk
CppunitTest_sc_opencl-2.mk
CppunitTest_sc_outlineobj.mk
CppunitTest_sc_parallelism.mk
CppunitTest_sc_pdf_export.mk
CppunitTest_sc_perfobj.mk
CppunitTest_sc_pivottable_filters_test.mk
CppunitTest_sc_pivottable_formats_import_export_test.mk
CppunitTest_sc_recentfunctionsobj.mk
CppunitTest_sc_recordchanges.mk
CppunitTest_sc_scenariosobj.mk
CppunitTest_sc_screenshots.mk
CppunitTest_sc_shapeobj.mk
CppunitTest_sc_shapetest.mk
CppunitTest_sc_sheetlinkobj.mk
CppunitTest_sc_sheetlinksobj.mk
CppunitTest_sc_sortdescriptorbaseobj.mk
CppunitTest_sc_sparkline_test.mk
CppunitTest_sc_spreadsheet_functions_test.mk
CppunitTest_sc_spreadsheetsettings.mk
CppunitTest_sc_spreadsheetsettingsobj.mk
CppunitTest_sc_statistical_functions_test.mk
CppunitTest_sc_stylefamiliesobj.mk
CppunitTest_sc_stylefamilyobj.mk
CppunitTest_sc_styleobj.mk
CppunitTest_sc_subsequent_export_test.mk
CppunitTest_sc_subsequent_export_test2.mk
CppunitTest_sc_subsequent_export_test3.mk
CppunitTest_sc_subsequent_export_test4.mk
CppunitTest_sc_subsequent_filters_test.mk
CppunitTest_sc_subsequent_filters_test2.mk
CppunitTest_sc_subsequent_filters_test3.mk
CppunitTest_sc_subsequent_filters_test4.mk
CppunitTest_sc_subtotaldescriptorbase.mk
CppunitTest_sc_subtotalfieldobj.mk
CppunitTest_sc_tablecolumnobj.mk
CppunitTest_sc_tablecolumnsobj.mk
CppunitTest_sc_tableconditionalentryobj.mk
CppunitTest_sc_tableconditionalformat.mk
CppunitTest_sc_tablerowobj.mk
CppunitTest_sc_tablerowsobj.mk
CppunitTest_sc_tablesheetobj.mk
CppunitTest_sc_tablesheetsobj.mk
CppunitTest_sc_tablevalidationobj.mk
CppunitTest_sc_tabviewobj.mk
CppunitTest_sc_text_functions_test.mk
CppunitTest_sc_theme_import_export_test.mk
CppunitTest_sc_tiledrendering.mk
CppunitTest_sc_tiledrendering2.mk
CppunitTest_sc_ucalc.mk
CppunitTest_sc_ucalc_condformat.mk
CppunitTest_sc_ucalc_copypaste.mk
CppunitTest_sc_ucalc_datatransformation.mk
CppunitTest_sc_ucalc_document_themes.mk
CppunitTest_sc_ucalc_formula.mk
CppunitTest_sc_ucalc_formula2.mk
CppunitTest_sc_ucalc_parallelism.mk
CppunitTest_sc_ucalc_pivottable.mk
CppunitTest_sc_ucalc_range.mk
CppunitTest_sc_ucalc_rangelst.mk
CppunitTest_sc_ucalc_sharedformula.mk
CppunitTest_sc_ucalc_solver.mk
CppunitTest_sc_ucalc_sort.mk
CppunitTest_sc_ucalc_sparkline.mk
CppunitTest_sc_uicalc.mk
CppunitTest_sc_uicalc2.mk
CppunitTest_sc_uniquecellformatsenumeration.mk
CppunitTest_sc_uniquecellformatsobj.mk
CppunitTest_sc_vba_macro_test.mk
CppunitTest_sc_viewpaneobj.mk
functions_setup.mk
IwyuFilter_sc.yaml NFC cleanup duplicate entry in sc/IwyuFilter_sc.yaml #2 2024-06-24 10:12:32 +02:00
JunitTest_sc_complex.mk
JunitTest_sc_unoapi_1.mk
JunitTest_sc_unoapi_2.mk
JunitTest_sc_unoapi_3.mk
JunitTest_sc_unoapi_4.mk
JunitTest_sc_unoapi_6.mk
JunitTest_sc_unoapi_7.mk
Library_sc.mk
Library_scd.mk
Library_scfilt.mk
Library_scqahelper.mk
Library_scui.mk
Library_vbaobj.mk
Makefile
Module_sc.mk tdf#161511: sc_goal_seek: Add unittest 2024-06-14 19:49:43 +02:00
Package_opencl.mk
Package_res_xml.mk
PythonTest_sc_python.mk
README.md
subsequent_setup.mk
ucalc_setup.mk
UIConfig_scalc.mk
UITest_autofilter.mk
UITest_autofilter2.mk
UITest_calc_dialogs.mk
UITest_calc_tests.mk
UITest_calc_tests2.mk
UITest_calc_tests3.mk
UITest_calc_tests4.mk
UITest_calc_tests6.mk
UITest_calc_tests7.mk
UITest_calc_tests8.mk
UITest_calc_tests9.mk
UITest_chart.mk
UITest_chart2.mk
UITest_conditional_format.mk
UITest_csv_dialog.mk
UITest_external_links.mk
UITest_function_wizard.mk
UITest_goalSeek.mk
UITest_inputLine.mk
UITest_key_f4.mk
UITest_manual_tests.mk
UITest_pageFormat.mk
UITest_pasteSpecial.mk
UITest_protect.mk
UITest_range_name.mk
UITest_sc_options.mk
UITest_search_replace.mk
UITest_signatureLine.mk
UITest_solver.mk
UITest_sort.mk
UITest_statistics.mk
UITest_textCase.mk
UITest_textToColumns.mk
UITest_validity.mk

Spreadsheet Application Code

You can dump some information in a dbgutil build:

Shortcuts

CTRL+SHIFT+F12

Dumps the column width of the first 20 columns.

CTRL+SHIFT+F11

Dumps the graphic objects and their position and size in pixel.

CTRL+SHIFT+F6

Dumps the SfxItemSet representing the cell properties' of the current selection as a xml file. The file will be named dump.xml

The Cache Format

ScDocument::StoreTabToCache allows storing the content (not the formatting) of a table to a binary cache format.

The format is column orientated which allows quick serialization of the table.

  • Header:

    • Number of Columns: 64 bit unsigned integer
  • Column:

    • Column Index: 64 bit unsigned integer
    • Column Size: 64 bit unsigned integer
    • For each cell type block a new ColumnBlock
  • ColumnBlock:

    • Start Row: 64 bit unsigned integer
    • Block Size: 64 bit unsigned integer
    • Type: 8 bit unsigned integer
      • 0 : empty
      • 1 : numeric
        • for each cell: 64 bit IEEE 754 double precision value
      • 2 : string
        • for each cell: 32 bit signed string length followed by string length bytes of the string (UTF-8)
      • 3 : formula
        • for each cell: 32 bit signed string length followed by the formula in R1C1 notation as a string

Functions Supporting Wildcards or Regular Expressions

As this comes up every now and then, and rather should be documented in an extra list of the Help system, functions that support Wildcards or Regular Expressions and depend on the setting under Tools -> Options -> Calc -> Calculate are those that in ODF OpenFormula (ODFF) are defined to depend on the HOST-USE-REGULAR-EXPRESSIONS or HOST-USE-WILDCARDS properties, see ODF v1.3 part4 3.4 Host-Defined Behaviors https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html#__RefHeading__1017868_715980110

  • Database Functions
    • DAVERAGE
    • DCOUNT
    • DCOUNTA
    • DGET
    • DMAX
    • DMIN
    • DPRODUCT
    • DSTDEV
    • DSTDEVP
    • DSUM
    • DVAR
    • DVARP
  • Information Functions
    • COUNTIF
    • COUNTIFS
  • Lambda Functions
    • LET
  • Lookup Functions
    • HLOOKUP
    • LOOKUP
    • MATCH
    • XMATCH
    • VLOOKUP
    • XLOOKUP
    • FILTER
    • SORT
    • SORTBY
    • UNIQUE
  • Mathematical Functions
    • RANDARRAY
    • SEQUENCE
    • SUMIF
    • SUMIFS
  • Statistical Functions
    • AVERAGEIF
    • AVERAGEIFS
  • Text Functions
    • SEARCH