Version 7.5.1.1, tag libreoffice-7.5.1.1
[LibreOffice.git] / sc / source / filter / inc / xlconst.hxx
blob2d62c26ba78baeef0aa6c2497adcea0a9dddfebf
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #pragma once
22 #include <address.hxx>
24 // Common =====================================================================
26 // BIFF versions --------------------------------------------------------------
28 /** An enumeration for all Excel file format types (BIFF types). */
29 enum XclBiff
31 EXC_BIFF2 = 0, /// MS Excel 2.1
32 EXC_BIFF3, /// MS Excel 3.0
33 EXC_BIFF4, /// MS Excel 4.0
34 EXC_BIFF5, /// MS Excel 5.0, MS Excel 7.0 (95)
35 EXC_BIFF8, /// MS Excel 8.0 (97), 9.0 (2000), 10.0 (XP), 11.0 (2003)
36 EXC_BIFF_UNKNOWN /// Unknown BIFF version.
39 /** An enumeration for all Excel output format types. */
40 enum XclOutput
42 EXC_OUTPUT_BINARY, /// MS Excel binary .xls
43 EXC_OUTPUT_XML_2007, /// MS Excel 2007 .xlsx
46 // Excel sheet dimensions -----------------------------------------------------
48 const SCCOL EXC_MAXCOL2 = 255;
49 const SCROW EXC_MAXROW2 = 16383;
50 const SCTAB EXC_MAXTAB2 = 0;
52 const SCCOL EXC_MAXCOL3 = EXC_MAXCOL2;
53 const SCROW EXC_MAXROW3 = EXC_MAXROW2;
54 const SCTAB EXC_MAXTAB3 = EXC_MAXTAB2;
56 const SCCOL EXC_MAXCOL4 = EXC_MAXCOL3;
57 const SCROW EXC_MAXROW4 = EXC_MAXROW3;
58 const SCTAB EXC_MAXTAB4 = 32767;
60 const SCCOL EXC_MAXCOL5 = EXC_MAXCOL4;
61 const SCROW EXC_MAXROW5 = EXC_MAXROW4;
62 const SCTAB EXC_MAXTAB5 = EXC_MAXTAB4;
64 const SCCOL EXC_MAXCOL8 = EXC_MAXCOL5;
65 const SCROW EXC_MAXROW8 = 65535;
66 const SCTAB EXC_MAXTAB8 = EXC_MAXTAB5;
68 const SCCOL EXC_MAXCOL_XML_2007 = 16383;
69 const SCROW EXC_MAXROW_XML_2007 = 1048575;
70 const SCTAB EXC_MAXTAB_XML_2007 = 1023;
72 const sal_uInt16 EXC_NOTAB = SAL_MAX_UINT16; /// An invalid Excel sheet index, for common use.
73 const SCTAB SCTAB_INVALID = SCTAB_MAX; /// An invalid Calc sheet index, for common use.
74 const SCTAB SCTAB_GLOBAL = SCTAB_MAX; /// A Calc sheet index for the workbook globals.
76 // Storage/stream names -------------------------------------------------------
78 #define EXC_STORAGE_OLE_LINKED "LNK"
79 #define EXC_STORAGE_OLE_EMBEDDED "MBD"
80 inline constexpr OUStringLiteral EXC_STORAGE_VBA_PROJECT = u"_VBA_PROJECT_CUR";
82 inline constexpr OUStringLiteral EXC_STREAM_BOOK = u"Book";
83 inline constexpr OUStringLiteral EXC_STREAM_WORKBOOK = u"Workbook";
84 inline constexpr OUStringLiteral EXC_STREAM_CTLS = u"Ctls";
86 // Encoded URLs ---------------------------------------------------------------
88 const sal_Unicode EXC_URLSTART_ENCODED = '\x01'; /// Encoded URL.
89 const sal_Unicode EXC_URLSTART_SELF = '\x02'; /// Reference to own workbook.
90 const sal_Unicode EXC_URLSTART_SELFENCODED = '\x03'; /// Encoded self reference.
91 const sal_Unicode EXC_URLSTART_OWNDOC = '\x04'; /// Reference to own workbook (BIFF5/BIFF7).
93 const sal_Unicode EXC_URL_DOSDRIVE = '\x01'; /// DOS drive letter or UNC server name.
94 const sal_Unicode EXC_URL_DRIVEROOT = '\x02'; /// Root directory of current drive.
95 const sal_Unicode EXC_URL_SUBDIR = '\x03'; /// Directory name delimiter.
96 const sal_Unicode EXC_URL_PARENTDIR = '\x04'; /// Parent directory.
97 const sal_Unicode EXC_URL_RAW = '\x05'; /// Unencoded URL.
98 const sal_Unicode EXC_URL_SHEETNAME = '\x09'; /// Sheet name starts here (BIFF4).
100 const sal_Unicode EXC_DDE_DELIM = '\x03'; /// DDE application-topic delimiter
102 // Error codes ----------------------------------------------------------------
104 const sal_uInt8 EXC_ERR_NULL = 0x00;
105 const sal_uInt8 EXC_ERR_DIV0 = 0x07;
106 const sal_uInt8 EXC_ERR_VALUE = 0x0F;
107 const sal_uInt8 EXC_ERR_REF = 0x17;
108 const sal_uInt8 EXC_ERR_NAME = 0x1D;
109 const sal_uInt8 EXC_ERR_NUM = 0x24;
110 const sal_uInt8 EXC_ERR_NA = 0x2A;
112 // Cached values list (EXTERNNAME, ptgArray, ...) -----------------------------
114 const sal_uInt8 EXC_CACHEDVAL_EMPTY = 0x00;
115 const sal_uInt8 EXC_CACHEDVAL_DOUBLE = 0x01;
116 const sal_uInt8 EXC_CACHEDVAL_STRING = 0x02;
117 const sal_uInt8 EXC_CACHEDVAL_BOOL = 0x04;
118 const sal_uInt8 EXC_CACHEDVAL_ERROR = 0x10;
120 // RK values ------------------------------------------------------------------
122 const sal_Int32 EXC_RK_100FLAG = 0x00000001;
123 const sal_Int32 EXC_RK_INTFLAG = 0x00000002;
124 const sal_Int32 EXC_RK_VALUEMASK = 0xFFFFFFFC;
126 const sal_Int32 EXC_RK_DBL = 0x00000000;
127 const sal_Int32 EXC_RK_DBL100 = EXC_RK_100FLAG;
128 const sal_Int32 EXC_RK_INT = EXC_RK_INTFLAG;
129 const sal_Int32 EXC_RK_INT100 = EXC_RK_100FLAG | EXC_RK_INTFLAG;
131 // Measures -------------------------------------------------------------------
133 const sal_uInt8 EXC_ORIENT_NONE = 0; /// Text orientation: not rotated.
134 const sal_uInt8 EXC_ORIENT_STACKED = 1; /// Text orientation: vertically stacked.
135 const sal_uInt8 EXC_ORIENT_90CCW = 2; /// Text orientation: 90 deg counterclockwise.
136 const sal_uInt8 EXC_ORIENT_90CW = 3; /// Text orientation: 90 deg clockwise.
138 const sal_uInt8 EXC_ROT_NONE = 0; /// Text rotation: not rotated.
139 const sal_uInt8 EXC_ROT_90CCW = 90; /// Text rotation: 90 deg counterclockwise.
140 const sal_uInt8 EXC_ROT_90CW = 180; /// Text rotation: 90 deg clockwise.
141 const sal_uInt8 EXC_ROT_STACKED = 255; /// Text rotation: vertically stacked.
143 // Records (ordered by lowest record ID) ======================================
145 // (0x0009, 0x0209, 0x0409, 0x0809) BOF ---------------------------------------
147 const sal_uInt16 EXC_ID2_BOF = 0x0009;
148 const sal_uInt16 EXC_ID3_BOF = 0x0209;
149 const sal_uInt16 EXC_ID4_BOF = 0x0409;
150 const sal_uInt16 EXC_ID5_BOF = 0x0809;
152 const sal_uInt16 EXC_BOF_BIFF2 = 0x0200;
153 const sal_uInt16 EXC_BOF_BIFF3 = 0x0300;
154 const sal_uInt16 EXC_BOF_BIFF4 = 0x0400;
155 const sal_uInt16 EXC_BOF_BIFF5 = 0x0500;
156 const sal_uInt16 EXC_BOF_BIFF8 = 0x0600;
158 const sal_uInt16 EXC_BOF_GLOBALS = 0x0005; /// BIFF5-BIFF8 workbook globals.
159 const sal_uInt16 EXC_BOF_VBMODULE = 0x0006; /// BIFF5-BIFF8 Visual BASIC module.
160 const sal_uInt16 EXC_BOF_SHEET = 0x0010; /// Regular worksheet.
161 const sal_uInt16 EXC_BOF_CHART = 0x0020; /// Chart sheet.
162 const sal_uInt16 EXC_BOF_MACROSHEET = 0x0040; /// Macro sheet.
163 const sal_uInt16 EXC_BOF_WORKSPACE = 0x0100; /// Workspace.
164 const sal_uInt16 EXC_BOF_UNKNOWN = 0xFFFF; /// Internal use only.
166 // (0x000A) EOF ---------------------------------------------------------------
167 const sal_uInt16 EXC_ID_EOF = 0x000A;
169 // (0x0012) PROTECT -----------------------------------------------------------
170 const sal_uInt16 EXC_ID_PROTECT = 0x0012;
172 // (0x0013) PASSWORD ----------------------------------------------------------
173 const sal_uInt16 EXC_ID_PASSWORD = 0x0013;
175 // (0x0019) WINDOWPROTECT -----------------------------------------------------
176 const sal_uInt16 EXC_ID_WINDOWPROTECT = 0x0019;
178 // (0x0042) CODEPAGE ----------------------------------------------------------
179 const sal_uInt16 EXC_ID_CODEPAGE = 0x0042;
181 // (0x0081) WSBOOL ------------------------------------------------------------
182 const sal_uInt16 EXC_ID_WSBOOL = 0x0081;
184 const sal_uInt16 EXC_WSBOOL_ROWBELOW = 0x0040;
185 const sal_uInt16 EXC_WSBOOL_COLBELOW = 0x0080;
186 const sal_uInt16 EXC_WSBOOL_FITTOPAGE = 0x0100;
188 const sal_uInt16 EXC_WSBOOL_DEFAULTFLAGS = 0x04C1;
190 // (0x0086) WRITEPROT ---------------------------------------------------------
191 const sal_uInt16 EXC_ID_WRITEPROT = 0x0086;
193 // (0x008C) COUNTRY -----------------------------------------------------------
194 const sal_uInt16 EXC_ID_COUNTRY = 0x008C;
196 // (0x009B) FILTERMODE --------------------------------------------------------
197 const sal_uInt16 EXC_ID_FILTERMODE = 0x009B;
199 // (0x009C) FNGROUPCOUNT ------------------------------------------------------
200 const sal_uInt16 EXC_ID_FNGROUPCOUNT = 0x009C;
202 // (0x009D) AUTOFILTERINFO ----------------------------------------------------
203 const sal_uInt16 EXC_ID_AUTOFILTERINFO = 0x009D;
205 // (0x009E) AUTOFILTER --------------------------------------------------------
206 const sal_uInt16 EXC_ID_AUTOFILTER = 0x009E;
208 // (0x00BF, 0x00C0, 0x00C1) TOOLBARHDR, TOOLBAREND, MMS -----------------------
209 const sal_uInt16 EXC_ID_TOOLBARHDR = 0x00BF;
210 const sal_uInt16 EXC_ID_TOOLBAREND = 0x00C0;
211 const sal_uInt16 EXC_ID_MMS = 0x00C1;
213 // (0x00E1, 0x00E2) INTERFACEHDR, INTERFACEEND --------------------------------
214 const sal_uInt16 EXC_ID_INTERFACEHDR = 0x00E1;
215 const sal_uInt16 EXC_ID_INTERFACEEND = 0x00E2;
217 // (0x0160) USESELFS ----------------------------------------------------------
218 const sal_uInt16 EXC_ID_USESELFS = 0x0160;
220 // (0x0161) DSF ---------------------------------------------------------------
221 const sal_uInt16 EXC_ID_DSF = 0x0161;
223 // (0x01AA,0x01AB) USERSVIEWBEGIN, USERSVIEWEND -------------------------------
224 const sal_uInt16 EXC_ID_USERSVIEWBEGIN = 0x01AA;
225 const sal_uInt16 EXC_ID_USERSVIEWEND = 0x01AB;
227 // (0x01BA) CODENAME ----------------------------------------------------------
228 const sal_uInt16 EXC_ID_CODENAME = 0x01BA;
230 // (0x01C0) XL9FILE -----------------------------------------------------------
231 const sal_uInt16 EXC_ID_XL9FILE = 0x01C0;
233 // (0x8xx) Future records -----------------------------------------------------
235 /** Enumerates different header types of future records. */
236 enum XclFutureRecType
238 EXC_FUTUREREC_SIMPLE, /// Record identifier and empty flags field.
239 EXC_FUTUREREC_UNUSEDREF /// Record identifier, empty flags field, unused range address.
242 const sal_uInt16 EXC_FUTUREREC_EMPTYFLAGS = 0x0000;
243 const sal_uInt16 EXC_FUTUREREC_HASREF = 0x0001;
244 const sal_uInt16 EXC_FUTUREREC_ALERT = 0x0002;
246 // Border import/export
248 const sal_uInt16 EXC_BORDER_THICK = 50;
249 const sal_uInt16 EXC_BORDER_MEDIUM = 35;
250 const sal_uInt16 EXC_BORDER_THIN = 15;
251 const sal_uInt16 EXC_BORDER_HAIR = 1;
253 // SharedFeatureType enumeration
254 const sal_uInt16 EXC_ISFPROTECTION = 0x0002;
255 const sal_uInt16 EXC_ISFFEC2 = 0x0003;
256 const sal_uInt16 EXC_ISFFACTOID = 0x0004;
257 const sal_uInt16 EXC_ISFLIST = 0x0005;
259 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */