office-gobmx/sc
Eike Rathke f435cdba5b Resolves: tdf#113571 paste-special "Unformatted text [TSV-Calc]", tdf#32213
For intra-Calc on-cell pastes using the paste special toolbar
button the SotClipboardFormatId::STRING_TSVC format can be used,
which preserves embedded line breaks and tabs by enclosing such
content in double quotes and escaping quotes by doubling them,
similar to CSV. This differs from the IANA
text/tab-separated-values MIME type (see
https://www.iana.org/assignments/media-types/text/tab-separated-values)
that does not allow quoted fields or embedded line breaks or tabs.

The text/plain "Unformatted text" format now again (after the
change with commit cdcd262ea4aa3c3e407b14ed533e514f75de2d3a for
tdf#32213) results in unquoted/unescaped content as expected for
external pastes.

A follow-up commit probably should distinguish whether the source
is one single cell or multiple cells and for multiple cells use a
strict TSV (with embedded line breaks and tabs changed to spaces)
if a simple "Unformatted text" is requested, which always uses
tabs as field separators anyway.

Further enhancement could be to offer strict
text/tab-separated-values and also text/csv at the clipboard if
there are applications that actually handle these MIME types.

Change-Id: Ica60f256e26867d854639823c62eedbf13eb4d4b
Reviewed-on: https://gerrit.libreoffice.org/44686
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
2017-11-13 18:43:35 +01:00
..
inc tdf#113768 Fix opposite argument description for Calc function VDB. 2017-11-13 18:28:10 +01:00
qa tdf#113768 Fix opposite argument description for Calc function VDB. 2017-11-13 18:28:10 +01:00
res/xml tdf#90937 Add hyperlink cell style 2017-10-25 02:10:01 +02:00
sdi sc lok: fix spell checking languages in Calc 2017-10-22 17:18:17 +02:00
source Resolves: tdf#113571 paste-special "Unformatted text [TSV-Calc]", tdf#32213 2017-11-13 18:43:35 +01:00
uiconfig/scalc Resolves: tdf#113455 Impossible to clear width/height in pages 2017-10-27 09:57:07 +02:00
util
workben
AllLangMoTarget_sc.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_bugfix_test.mk
CppunitTest_sc_cache_test.mk
CppunitTest_sc_cellcursorobj.mk
CppunitTest_sc_cellobj.mk
CppunitTest_sc_cellrangeobj.mk Missing dependency 2017-11-03 20:32:41 +01:00
CppunitTest_sc_cellrangesobj.mk tdf#45904: Move Java _XSheetOperation tests to C++ 2017-10-29 23:44:31 +01:00
CppunitTest_sc_chart_regression_test.mk
CppunitTest_sc_check_data_pilot_field.mk
CppunitTest_sc_check_data_pilot_table.mk
CppunitTest_sc_check_xcell_ranges_query.mk
CppunitTest_sc_copypaste.mk
CppunitTest_sc_core.mk
CppunitTest_sc_database_functions_test.mk
CppunitTest_sc_databaserangeobj.mk
CppunitTest_sc_datapilotfieldobj.mk
CppunitTest_sc_datapilotitemobj.mk
CppunitTest_sc_datapilottableobj.mk
CppunitTest_sc_dataprovider.mk
CppunitTest_sc_datatransformation.mk
CppunitTest_sc_datetime_functions_test.mk
CppunitTest_sc_editfieldobj_cell.mk
CppunitTest_sc_editfieldobj_header.mk
CppunitTest_sc_filterdescriptorbaseobj.mk tdf#45904: Move Java _XSheetFilterDescriptor tests to C++ 2017-10-29 23:45:13 +01:00
CppunitTest_sc_filters_test.mk
CppunitTest_sc_financial_functions_test.mk
CppunitTest_sc_functions_test_old.mk
CppunitTest_sc_html_export_test.mk
CppunitTest_sc_information_functions_test.mk
CppunitTest_sc_labelrangesobj.mk tdf#45904 Move _XLabelRanges Java test to C++ 2017-11-13 11:48:46 +01:00
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_test.mk
CppunitTest_sc_outlineobj.mk
CppunitTest_sc_parallelism.mk
CppunitTest_sc_perfobj.mk
CppunitTest_sc_pivottable_filters_test.mk Move pivot table tests to a separate test suit 2017-11-13 14:32:29 +01:00
CppunitTest_sc_range_test.mk
CppunitTest_sc_rangelst_test.mk
CppunitTest_sc_recordchanges.mk
CppunitTest_sc_scenariosobj.mk tdf#45904 Move _XScenarios Java test to C++ 2017-11-12 00:33:20 +01:00
CppunitTest_sc_screenshots.mk
CppunitTest_sc_spreadsheet_functions_test.mk
CppunitTest_sc_statistical_functions_test.mk
CppunitTest_sc_styleloaderobj.mk
CppunitTest_sc_subsequent_export_test.mk
CppunitTest_sc_subsequent_filters_test.mk
CppunitTest_sc_subtotaldescriptorbaseobj.mk tdf#45904: Move _XSubTotalDescriptor Java tests to C++ 2017-10-29 22:08:00 +01:00
CppunitTest_sc_subtotalfieldobj.mk
CppunitTest_sc_tableconditionalentryobj.mk tdf#45904 Move Java _XSheetCondition tests to C++ 2017-11-03 03:20:07 +01:00
CppunitTest_sc_tableconditionalformatobj.mk tdf#45904 Move Java _XSheetConditionalEntries test to C++ 2017-11-03 04:09:44 +01:00
CppunitTest_sc_tablesheetobj.mk
CppunitTest_sc_tablesheetsobj.mk
CppunitTest_sc_tablevalidationobj.mk tdf#45904 Move Java _XSheetCondition tests to C++ 2017-11-03 03:20:07 +01:00
CppunitTest_sc_tabviewobj.mk
CppunitTest_sc_text_functions_test.mk
CppunitTest_sc_tiledrendering.mk
CppunitTest_sc_ucalc.mk
CppunitTest_sc_viewpaneobj.mk
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_5.mk
JunitTest_sc_unoapi_6.mk
JunitTest_sc_unoapi_7.mk
Library_sc.mk
Library_scd.mk
Library_scfilt.mk drop uncallable Sc10Import 2017-11-08 15:25:39 +01:00
Library_scqahelper.mk
Library_scui.mk
Library_vbaobj.mk
Makefile
Module_sc.mk Move pivot table tests to a separate test suit 2017-11-13 14:32:29 +01:00
Package_opencl.mk
Package_res_xml.mk
PythonTest_sc_python.mk
README
TODO.performance
UIConfig_scalc.mk
UITest_autofilter.mk
UITest_conditional_format.mk
UITest_hide_cols.mk
UITest_range_name.mk
UITest_search_replace.mk

Spreadsheet application code.

You can dump some information in a dbgutil build:

=== 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+F9 ===

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