fast_excel 0.2.3 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/.travis.yml +4 -0
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +16 -16
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/fast_excel.gemspec +1 -1
- data/lib/fast_excel.rb +21 -5
- data/lib/fast_excel/binding/format.rb +3 -3
- data/libxlsxwriter/.drone.yml +27 -0
- data/libxlsxwriter/.indent.pro +3 -0
- data/libxlsxwriter/.travis.yml +12 -0
- data/libxlsxwriter/CMakeLists.txt +348 -0
- data/libxlsxwriter/Changes.txt +78 -0
- data/libxlsxwriter/LICENSE.txt +65 -4
- data/libxlsxwriter/Makefile +27 -7
- data/libxlsxwriter/Readme.md +2 -0
- data/libxlsxwriter/appveyor.yml +65 -0
- data/libxlsxwriter/cmake/FindMINIZIP.cmake +121 -0
- data/libxlsxwriter/cmake/FindPackage.cmake +183 -0
- data/libxlsxwriter/cmake/FindZLIB.cmake +123 -0
- data/libxlsxwriter/cmake/i686-toolchain.cmake +7 -0
- data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +1 -1
- data/libxlsxwriter/cocoapods/libxlsxwriter.modulemap +2 -2
- data/libxlsxwriter/include/xlsxwriter.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/app.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/chart.h +109 -8
- data/libxlsxwriter/include/xlsxwriter/common.h +10 -2
- data/libxlsxwriter/include/xlsxwriter/content_types.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/core.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/custom.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/drawing.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/format.h +6 -6
- data/libxlsxwriter/include/xlsxwriter/hash_table.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/packager.h +6 -1
- data/libxlsxwriter/include/xlsxwriter/relationships.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/shared_strings.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/styles.h +2 -2
- data/libxlsxwriter/include/xlsxwriter/theme.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/utility.h +11 -5
- data/libxlsxwriter/include/xlsxwriter/workbook.h +3 -3
- data/libxlsxwriter/include/xlsxwriter/worksheet.h +517 -39
- data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +2 -2
- data/libxlsxwriter/libxlsxwriter.podspec +4 -2
- data/libxlsxwriter/src/Makefile +30 -5
- data/libxlsxwriter/src/app.c +1 -1
- data/libxlsxwriter/src/chart.c +76 -19
- data/libxlsxwriter/src/content_types.c +1 -1
- data/libxlsxwriter/src/core.c +10 -10
- data/libxlsxwriter/src/custom.c +2 -2
- data/libxlsxwriter/src/drawing.c +1 -1
- data/libxlsxwriter/src/format.c +3 -3
- data/libxlsxwriter/src/hash_table.c +1 -1
- data/libxlsxwriter/src/packager.c +20 -7
- data/libxlsxwriter/src/relationships.c +1 -1
- data/libxlsxwriter/src/shared_strings.c +1 -1
- data/libxlsxwriter/src/styles.c +4 -4
- data/libxlsxwriter/src/theme.c +1 -1
- data/libxlsxwriter/src/utility.c +41 -1
- data/libxlsxwriter/src/workbook.c +8 -6
- data/libxlsxwriter/src/worksheet.c +748 -31
- data/libxlsxwriter/src/xmlwriter.c +2 -2
- data/libxlsxwriter/third_party/minizip/Makefile +6 -1
- data/libxlsxwriter/version.txt +1 -1
- data/test/reopen_test.rb +22 -0
- data/test/test_helper.rb +8 -5
- data/test/validations_test.rb +27 -0
- metadata +11 -2
@@ -0,0 +1,183 @@
|
|
1
|
+
# :copyright: (c) 2017 Alex Huszagh.
|
2
|
+
# :license: FreeBSD, see LICENSE.txt for more details.
|
3
|
+
|
4
|
+
# FindPackage
|
5
|
+
# -----------
|
6
|
+
#
|
7
|
+
# Macros and functions to help find packages. Do not invoke this module
|
8
|
+
# directly, it merely provides library definitions to be invoked
|
9
|
+
# by other find utilities.
|
10
|
+
|
11
|
+
include(CheckCXXSourceCompiles)
|
12
|
+
|
13
|
+
|
14
|
+
# Return if the package name has previously been found
|
15
|
+
#
|
16
|
+
# Args:
|
17
|
+
# packageName Name of the package
|
18
|
+
#
|
19
|
+
# Example:
|
20
|
+
# ReturnFound(Iconv)
|
21
|
+
#
|
22
|
+
macro(ReturnFound packageName)
|
23
|
+
if(${packageName}_FOUND)
|
24
|
+
return()
|
25
|
+
endif()
|
26
|
+
endmacro(ReturnFound)
|
27
|
+
|
28
|
+
|
29
|
+
# Set the library extensions for a given package dependent on whether
|
30
|
+
# to search for static or dynamic libraries.
|
31
|
+
#
|
32
|
+
# Args:
|
33
|
+
# packageName Name of the package
|
34
|
+
#
|
35
|
+
# Example:
|
36
|
+
# SetSuffixes(IConv)
|
37
|
+
#
|
38
|
+
macro(SetSuffixes packageName)
|
39
|
+
if(${packageName}_USE_STATIC_LIBS)
|
40
|
+
if(MSVC)
|
41
|
+
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
|
42
|
+
else()
|
43
|
+
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
44
|
+
endif()
|
45
|
+
else()
|
46
|
+
if(WIN32)
|
47
|
+
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll" ".lib" ".a")
|
48
|
+
else()
|
49
|
+
set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
|
50
|
+
endif()
|
51
|
+
endif()
|
52
|
+
endmacro(SetSuffixes)
|
53
|
+
|
54
|
+
|
55
|
+
# Check if the package was found.
|
56
|
+
#
|
57
|
+
# Args:
|
58
|
+
# packageName Name of the package
|
59
|
+
#
|
60
|
+
# Example:
|
61
|
+
# CheckFound(IConv)
|
62
|
+
#
|
63
|
+
macro(CheckFound packageName)
|
64
|
+
if(${packageName}_INCLUDE_DIRS AND ${packageName}_LIBRARIES)
|
65
|
+
set(${packageName}_FOUND TRUE)
|
66
|
+
endif()
|
67
|
+
endmacro(CheckFound)
|
68
|
+
|
69
|
+
|
70
|
+
# Replace a dynamic library with a `.dll.a` extension with the corresponding
|
71
|
+
# library removing the `.dll`.
|
72
|
+
#
|
73
|
+
# Args:
|
74
|
+
# libraryName Variable name for path to found library
|
75
|
+
#
|
76
|
+
# Example:
|
77
|
+
# ReplaceDynamic(/mingw64/lib/libiconv.dll.a)
|
78
|
+
#
|
79
|
+
macro(ReplaceDynamic libraryName)
|
80
|
+
if(${libraryName} MATCHES ".dll.a")
|
81
|
+
string(REPLACE ".dll.a" ".a" static ${${libraryName}})
|
82
|
+
if(EXISTS ${static})
|
83
|
+
set(${libraryName} ${static})
|
84
|
+
endif()
|
85
|
+
endif()
|
86
|
+
endmacro(ReplaceDynamic)
|
87
|
+
|
88
|
+
|
89
|
+
# Replace a dynamic libraries with the static variants, with integrity
|
90
|
+
# checks for the package.
|
91
|
+
#
|
92
|
+
# Args:
|
93
|
+
# packageName Name of the package
|
94
|
+
#
|
95
|
+
# Example:
|
96
|
+
# FindStaticLibs(IConv)
|
97
|
+
#
|
98
|
+
macro(FindStaticLibs packageName)
|
99
|
+
if(${packageName}_USE_STATIC_LIBS AND MSYS)
|
100
|
+
# convert `.dll.a` to `.a`
|
101
|
+
set(${packageName}_LIBRARY_SOURCE ${${packageName}_LIBRARIES})
|
102
|
+
set(${packageName}_LIBRARIES "")
|
103
|
+
foreach(library ${${packageName}_LIBRARY_SOURCE})
|
104
|
+
# replace each dynamic library with a single one
|
105
|
+
set(static_library ${library})
|
106
|
+
ReplaceDynamic(static_library)
|
107
|
+
list(APPEND ${packageName}_LIBRARIES ${static_library})
|
108
|
+
endforeach(library)
|
109
|
+
endif()
|
110
|
+
endmacro(FindStaticLibs)
|
111
|
+
|
112
|
+
|
113
|
+
# Checks if a suitable version for the found library was identified,
|
114
|
+
# if provided. The library can either force exact or inexact matching.
|
115
|
+
#
|
116
|
+
# Args:
|
117
|
+
# packageName Name of the package
|
118
|
+
#
|
119
|
+
# Example:
|
120
|
+
# MatchVersion(ICU)
|
121
|
+
#
|
122
|
+
macro(MatchVersion packageName)
|
123
|
+
if(${packageName}_FOUND AND ${packageName}_FIND_VERSION)
|
124
|
+
# MATCH VERSION
|
125
|
+
if(${packageName}_FIND_VERSION_EXACT)
|
126
|
+
# EXACT VERSION
|
127
|
+
if(${packageName}_FIND_VERSION VERSION_EQUAL ${packageName}_VERSION)
|
128
|
+
else()
|
129
|
+
set(${packageName}_FOUND FALSE)
|
130
|
+
endif()
|
131
|
+
else()
|
132
|
+
# GREATER THAN VERSION
|
133
|
+
if(${packageName}_VERSION VERSION_LESS ${packageName}_FIND_VERSION)
|
134
|
+
set(${packageName}_FOUND FALSE)
|
135
|
+
endif()
|
136
|
+
endif()
|
137
|
+
endif()
|
138
|
+
endmacro(MatchVersion)
|
139
|
+
|
140
|
+
|
141
|
+
# Check if a sample program compiles, if not, set the library to not found.
|
142
|
+
#
|
143
|
+
# Args:
|
144
|
+
# packageName Name of the package
|
145
|
+
# code String of simple program depending on the library
|
146
|
+
#
|
147
|
+
# Example:
|
148
|
+
# set(IConv_CODE "int main(int argc, char **argv){ return 0; }")
|
149
|
+
# CheckCompiles(IConv)
|
150
|
+
#
|
151
|
+
macro(CheckCompiles packageName)
|
152
|
+
# FLAGS
|
153
|
+
set(CMAKE_REQUIRED_INCLUDES ${${packageName}_INCLUDE_DIRS})
|
154
|
+
set(CMAKE_REQUIRED_LIBRARIES ${${packageName}_LIBRARIES})
|
155
|
+
|
156
|
+
# COMPILATION
|
157
|
+
check_cxx_source_compiles("${${packageName}_CODE}" ${packageName}_COMPILES)
|
158
|
+
if(NOT ${${packageName}_COMPILES})
|
159
|
+
set(${packageName}_FOUND FALSE)
|
160
|
+
message(SEND_ERROR "Cannot compile a simple ${packageName} program.")
|
161
|
+
endif()
|
162
|
+
|
163
|
+
endmacro(CheckCompiles)
|
164
|
+
|
165
|
+
|
166
|
+
# Send an error if a required package was not found. Otherwise, if the
|
167
|
+
# package is found, report to the user it was identified.
|
168
|
+
#
|
169
|
+
# Args:
|
170
|
+
# packageName Name of the package
|
171
|
+
#
|
172
|
+
# Example:
|
173
|
+
# RequiredPackageFound(ICU)
|
174
|
+
#
|
175
|
+
macro(RequiredPackageFound packageName)
|
176
|
+
if(${packageName}_FOUND)
|
177
|
+
message("Found ${packageName}.")
|
178
|
+
else()
|
179
|
+
if(${packageName}_FIND_REQUIRED)
|
180
|
+
message(SEND_ERROR "Unable to find requested ${packageName} libraries.")
|
181
|
+
endif()
|
182
|
+
endif()
|
183
|
+
endmacro(RequiredPackageFound)
|
@@ -0,0 +1,123 @@
|
|
1
|
+
# :copyright: (c) 2017 Alex Huszagh.
|
2
|
+
# :license: FreeBSD, see LICENSE.txt for more details.
|
3
|
+
|
4
|
+
# FindZLIB
|
5
|
+
# --------
|
6
|
+
#
|
7
|
+
# Find ZLIB include dirs and libraries
|
8
|
+
#
|
9
|
+
# Use this module by invoking find_package with the form::
|
10
|
+
#
|
11
|
+
# find_package(ZLIB
|
12
|
+
# [version] [EXACT] # Minimum or EXACT version e.g. 1.0.6
|
13
|
+
# [REQUIRED] # Fail with error if ZLIB is not found
|
14
|
+
# )
|
15
|
+
#
|
16
|
+
# You may also set `ZLIB_USE_STATIC_LIBS` to prefer static libraries
|
17
|
+
# to shared ones.
|
18
|
+
#
|
19
|
+
# If found, `ZLIB_FOUND` will be set to true, and `ZLIB_LIBRARIES`
|
20
|
+
# and `ZLIB_INCLUDE_DIRS` will both be set.
|
21
|
+
#
|
22
|
+
# You may optionally set `ZLIB_ROOT` to specify a custom root directory
|
23
|
+
# for the ZLIB installation.
|
24
|
+
#
|
25
|
+
|
26
|
+
include(CheckCXXSourceCompiles)
|
27
|
+
include(FindPackage)
|
28
|
+
|
29
|
+
# PATHS
|
30
|
+
# -----
|
31
|
+
|
32
|
+
set(ZLIB_SEARCH_PATHS)
|
33
|
+
|
34
|
+
if(ZLIB_ROOT)
|
35
|
+
list(APPEND ZLIB_SEARCH_PATHS ${ZLIB_ROOT})
|
36
|
+
endif()
|
37
|
+
|
38
|
+
if(WIN32)
|
39
|
+
list(APPEND ZLIB_SEARCH_PATHS
|
40
|
+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Zlib;InstallPath]"
|
41
|
+
"$ENV{PROGRAMFILES}/zlib"
|
42
|
+
)
|
43
|
+
endif()
|
44
|
+
|
45
|
+
unset(ZLIB_SYSTEM_ROOT)
|
46
|
+
unset(ZLIB_CUSTOM_ROOT)
|
47
|
+
unset(ZLIB_SEARCH_HKEY)
|
48
|
+
|
49
|
+
# FIND
|
50
|
+
# ----
|
51
|
+
|
52
|
+
# INCLUDE DIRECTORY
|
53
|
+
SetSuffixes(ZLIB)
|
54
|
+
foreach(search ${ZLIB_SEARCH_PATHS})
|
55
|
+
FIND_PATH(ZLIB_INCLUDE_DIR
|
56
|
+
NAMES zlib.h
|
57
|
+
PATHS ${search}
|
58
|
+
PATH_SUFFIXES include
|
59
|
+
)
|
60
|
+
endforeach(search)
|
61
|
+
|
62
|
+
if(NOT ZLIB_INCLUDE_DIR)
|
63
|
+
FIND_PATH(ZLIB_INCLUDE_DIR zlib.h PATH_SUFFIXES include)
|
64
|
+
endif()
|
65
|
+
|
66
|
+
# LIBRARY PATHS
|
67
|
+
set(ZLIB_LIBRARY_NAMES z libz zlib zlib1)
|
68
|
+
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
69
|
+
list(APPEND ZLIB_LIBRARY_NAMES zlibd zlibd1)
|
70
|
+
endif()
|
71
|
+
|
72
|
+
foreach(search ${ZLIB_SEARCH_PATHS})
|
73
|
+
FIND_LIBRARY(ZLIB_LIBRARY
|
74
|
+
NAMES ${ZLIB_LIBRARY_NAMES}
|
75
|
+
PATHS ${search}
|
76
|
+
PATH_SUFFIXES lib
|
77
|
+
)
|
78
|
+
endforeach(search)
|
79
|
+
|
80
|
+
if(NOT ZLIB_LIBRARY)
|
81
|
+
FIND_LIBRARY(ZLIB_LIBRARY NAMES ${ZLIB_LIBRARY_NAMES} PATH_SUFFIXES lib)
|
82
|
+
endif()
|
83
|
+
|
84
|
+
set(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
|
85
|
+
set(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
|
86
|
+
|
87
|
+
CheckFound(ZLIB)
|
88
|
+
FindStaticLibs(ZLIB)
|
89
|
+
|
90
|
+
# VERSION
|
91
|
+
# -------
|
92
|
+
|
93
|
+
if(ZLIB_FOUND)
|
94
|
+
file(STRINGS "${ZLIB_INCLUDE_DIRS}/zlib.h" ZLIB_VERSION_CONTENTS REGEX "#define ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+\"")
|
95
|
+
string(REGEX REPLACE ".*ZLIB_VERSION \"([0-9]+)\\.[0-9]+\\.[0-9]+\"" "\\1" ZLIB_VERSION_MAJOR "${ZLIB_VERSION_CONTENTS}")
|
96
|
+
string(REGEX REPLACE ".*ZLIB_VERSION \"[0-9]+\\.([0-9]+)\\.[0-9]+\"" "\\1" ZLIB_VERSION_MINOR "${ZLIB_VERSION_CONTENTS}")
|
97
|
+
string(REGEX REPLACE ".*ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+)\"" "\\1" ZLIB_VERSION_PATCH "${ZLIB_VERSION_CONTENTS}")
|
98
|
+
|
99
|
+
set(ZLIB_VERSION_STRING "${ZLIB_VERSION_MAJOR}.${ZLIB_VERSION_MINOR}.${ZLIB_VERSION_PATCH}")
|
100
|
+
set(ZLIB_VERSION ${ZLIB_VERSION_STRING})
|
101
|
+
|
102
|
+
MatchVersion(ZLIB)
|
103
|
+
endif()
|
104
|
+
|
105
|
+
# COMPILATION
|
106
|
+
# -----------
|
107
|
+
|
108
|
+
set(ZLIB_CODE "
|
109
|
+
#include <zlib.h>
|
110
|
+
int main(void)
|
111
|
+
{
|
112
|
+
const char *version;
|
113
|
+
version = zlibVersion();
|
114
|
+
|
115
|
+
return 0;
|
116
|
+
}
|
117
|
+
"
|
118
|
+
)
|
119
|
+
|
120
|
+
if(ZLIB_FOUND)
|
121
|
+
CheckCompiles(ZLIB)
|
122
|
+
endif()
|
123
|
+
RequiredPackageFound(ZLIB)
|
@@ -0,0 +1,7 @@
|
|
1
|
+
set(CMAKE_SYSTEM_NAME Linux)
|
2
|
+
set(CMAKE_SYSTEM_VERSION 1)
|
3
|
+
set(CMAKE_SYSTEM_PROCESSOR "i686")
|
4
|
+
|
5
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags")
|
6
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags")
|
7
|
+
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -m32" CACHE STRING "asm flags")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* libxlsxwriter
|
3
3
|
*
|
4
|
-
* Copyright 2014-
|
4
|
+
* Copyright 2014-2018, John McNamara, jmcnamara@cpan.org. See LICENSE.txt.
|
5
5
|
*/
|
6
6
|
|
7
7
|
/**
|
@@ -18,6 +18,6 @@
|
|
18
18
|
#include "xlsxwriter/format.h"
|
19
19
|
#include "xlsxwriter/utility.h"
|
20
20
|
|
21
|
-
#define LXW_VERSION "0.
|
21
|
+
#define LXW_VERSION "0.7.7"
|
22
22
|
|
23
23
|
#endif /* __LXW_XLSXWRITER_H__ */
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* libxlsxwriter
|
3
3
|
*
|
4
|
-
* Copyright 2014-
|
4
|
+
* Copyright 2014-2018, John McNamara, jmcnamara@cpan.org. See LICENSE.txt.
|
5
5
|
*
|
6
6
|
* chart - A libxlsxwriter library for creating Excel XLSX chart files.
|
7
7
|
*
|
@@ -464,6 +464,17 @@ typedef enum lxw_chart_label_separator {
|
|
464
464
|
LXW_CHART_LABEL_SEPARATOR_SPACE
|
465
465
|
} lxw_chart_label_separator;
|
466
466
|
|
467
|
+
/**
|
468
|
+
* @brief Chart axis types.
|
469
|
+
*/
|
470
|
+
typedef enum lxw_chart_axis_type {
|
471
|
+
/** Chart X axis. */
|
472
|
+
LXW_CHART_AXIS_TYPE_X,
|
473
|
+
|
474
|
+
/** Chart Y axis. */
|
475
|
+
LXW_CHART_AXIS_TYPE_Y
|
476
|
+
} lxw_chart_axis_type;
|
477
|
+
|
467
478
|
enum lxw_chart_subtype {
|
468
479
|
|
469
480
|
LXW_CHART_SUBTYPE_NONE = 0,
|
@@ -613,7 +624,7 @@ typedef struct lxw_chart_line {
|
|
613
624
|
/** The line dash type. See #lxw_chart_line_dash_type. */
|
614
625
|
uint8_t dash_type;
|
615
626
|
|
616
|
-
|
627
|
+
/** Set the transparency of the line. 0 - 100. Default 0. */
|
617
628
|
uint8_t transparency;
|
618
629
|
|
619
630
|
/* Members for internal use only. */
|
@@ -675,7 +686,7 @@ typedef struct lxw_chart_font {
|
|
675
686
|
char *name;
|
676
687
|
|
677
688
|
/** The chart font size. The default is 11. */
|
678
|
-
|
689
|
+
double size;
|
679
690
|
|
680
691
|
/** The chart font bold property. Set to 0 or 1. */
|
681
692
|
uint8_t bold;
|
@@ -692,10 +703,17 @@ typedef struct lxw_chart_font {
|
|
692
703
|
/** The chart font color. See @ref working_with_colors. */
|
693
704
|
lxw_color_t color;
|
694
705
|
|
695
|
-
|
706
|
+
/** The chart font pitch family property. Rarely required. set to 0. */
|
696
707
|
uint8_t pitch_family;
|
708
|
+
|
709
|
+
/** The chart font character set property. Rarely required. set to 0. */
|
697
710
|
uint8_t charset;
|
711
|
+
|
712
|
+
/** The chart font baseline property. Rarely required. set to 0. */
|
698
713
|
int8_t baseline;
|
714
|
+
|
715
|
+
/* Members for internal use only. */
|
716
|
+
|
699
717
|
uint8_t has_color;
|
700
718
|
|
701
719
|
} lxw_chart_font;
|
@@ -808,6 +826,17 @@ typedef enum lxw_chart_error_bar_direction {
|
|
808
826
|
LXW_CHART_ERROR_BAR_DIR_MINUS
|
809
827
|
} lxw_chart_error_bar_direction;
|
810
828
|
|
829
|
+
/**
|
830
|
+
* @brief Direction for a data series error bar.
|
831
|
+
*/
|
832
|
+
typedef enum lxw_chart_error_bar_axis {
|
833
|
+
/** X axis error bar. */
|
834
|
+
LXW_CHART_ERROR_BAR_AXIS_X,
|
835
|
+
|
836
|
+
/** Y axis error bar. */
|
837
|
+
LXW_CHART_ERROR_BAR_AXIS_Y
|
838
|
+
} lxw_chart_error_bar_axis;
|
839
|
+
|
811
840
|
/**
|
812
841
|
* @brief End cap styles for a data series error bar.
|
813
842
|
*/
|
@@ -1768,7 +1797,7 @@ void chart_series_set_labels_percentage(lxw_chart_series *series);
|
|
1768
1797
|
* For more information see @ref chart_labels.
|
1769
1798
|
*/
|
1770
1799
|
void chart_series_set_labels_num_format(lxw_chart_series *series,
|
1771
|
-
char *num_format);
|
1800
|
+
const char *num_format);
|
1772
1801
|
|
1773
1802
|
/**
|
1774
1803
|
* @brief Set the font properties for chart data labels in a series
|
@@ -1983,7 +2012,8 @@ void chart_series_set_trendline_intercept(lxw_chart_series *series,
|
|
1983
2012
|
*
|
1984
2013
|
* For more information see @ref chart_trendlines.
|
1985
2014
|
*/
|
1986
|
-
void chart_series_set_trendline_name(lxw_chart_series *series,
|
2015
|
+
void chart_series_set_trendline_name(lxw_chart_series *series,
|
2016
|
+
const char *name);
|
1987
2017
|
|
1988
2018
|
/**
|
1989
2019
|
* @brief Set the trendline line properties for a chart data series.
|
@@ -2008,6 +2038,46 @@ void chart_series_set_trendline_name(lxw_chart_series *series, char *name);
|
|
2008
2038
|
*/
|
2009
2039
|
void chart_series_set_trendline_line(lxw_chart_series *series,
|
2010
2040
|
lxw_chart_line *line);
|
2041
|
+
/**
|
2042
|
+
* @brief Get a pointer to X or Y error bars from a chart series.
|
2043
|
+
*
|
2044
|
+
* @param series A series object created via `chart_add_series()`.
|
2045
|
+
* @param axis_type The axis type (X or Y): #lxw_chart_error_bar_axis.
|
2046
|
+
*
|
2047
|
+
* The `%chart_series_get_error_bars()` function returns a pointer to the
|
2048
|
+
* error bars of a series based on the type of #lxw_chart_error_bar_axis:
|
2049
|
+
*
|
2050
|
+
* @code
|
2051
|
+
* lxw_series_error_bars *x_error_bars;
|
2052
|
+
* lxw_series_error_bars *y_error_bars;
|
2053
|
+
*
|
2054
|
+
* x_error_bars = chart_series_get_error_bars(series, LXW_CHART_ERROR_BAR_AXIS_X);
|
2055
|
+
* y_error_bars = chart_series_get_error_bars(series, LXW_CHART_ERROR_BAR_AXIS_Y);
|
2056
|
+
*
|
2057
|
+
* // Use the error bar pointers.
|
2058
|
+
* chart_series_set_error_bars(x_error_bars,
|
2059
|
+
* LXW_CHART_ERROR_BAR_TYPE_STD_DEV, 1);
|
2060
|
+
*
|
2061
|
+
* chart_series_set_error_bars(y_error_bars,
|
2062
|
+
* LXW_CHART_ERROR_BAR_TYPE_STD_ERROR, 0);
|
2063
|
+
* @endcode
|
2064
|
+
*
|
2065
|
+
* Note, the series error bars can also be accessed directly:
|
2066
|
+
*
|
2067
|
+
* @code
|
2068
|
+
* // Equivalent to the above example, without function calls.
|
2069
|
+
* chart_series_set_error_bars(series->x_error_bars,
|
2070
|
+
* LXW_CHART_ERROR_BAR_TYPE_STD_DEV, 1);
|
2071
|
+
*
|
2072
|
+
* chart_series_set_error_bars(series->y_error_bars,
|
2073
|
+
* LXW_CHART_ERROR_BAR_TYPE_STD_ERROR, 0);
|
2074
|
+
* @endcode
|
2075
|
+
*
|
2076
|
+
* @return Pointer to the series error bars, or NULL if not found.
|
2077
|
+
*/
|
2078
|
+
|
2079
|
+
lxw_series_error_bars *chart_series_get_error_bars(lxw_chart_series *series, lxw_chart_error_bar_axis
|
2080
|
+
axis_type);
|
2011
2081
|
|
2012
2082
|
/**
|
2013
2083
|
* Set the X or Y error bars for a chart series.
|
@@ -2071,7 +2141,7 @@ void chart_series_set_error_bars(lxw_series_error_bars *error_bars,
|
|
2071
2141
|
* series.
|
2072
2142
|
*
|
2073
2143
|
* @param error_bars A pointer to the series X or Y error bars.
|
2074
|
-
* @param direction The bar direction: #lxw_chart_error_bar_direction
|
2144
|
+
* @param direction The bar direction: #lxw_chart_error_bar_direction.
|
2075
2145
|
*
|
2076
2146
|
* The `%chart_series_set_error_bars_direction()` function sets the
|
2077
2147
|
* direction of the error bars:
|
@@ -2153,6 +2223,37 @@ void chart_series_set_error_bars_endcap(lxw_series_error_bars *error_bars,
|
|
2153
2223
|
void chart_series_set_error_bars_line(lxw_series_error_bars *error_bars,
|
2154
2224
|
lxw_chart_line *line);
|
2155
2225
|
|
2226
|
+
/**
|
2227
|
+
* @brief Get an axis pointer from a chart.
|
2228
|
+
*
|
2229
|
+
* @param chart Pointer to a lxw_chart instance to be configured.
|
2230
|
+
* @param axis_type The axis type (X or Y): #lxw_chart_axis_type.
|
2231
|
+
*
|
2232
|
+
* The `%chart_axis_get()` function returns a pointer to a chart axis based
|
2233
|
+
* on the #lxw_chart_axis_type:
|
2234
|
+
*
|
2235
|
+
* @code
|
2236
|
+
* lxw_chart_axis *x_axis = chart_axis_get(chart, LXW_CHART_AXIS_TYPE_X);
|
2237
|
+
* lxw_chart_axis *y_axis = chart_axis_get(chart, LXW_CHART_AXIS_TYPE_Y);
|
2238
|
+
*
|
2239
|
+
* // Use the axis pointer in other functions.
|
2240
|
+
* chart_axis_major_gridlines_set_visible(x_axis, LXW_TRUE);
|
2241
|
+
* chart_axis_major_gridlines_set_visible(y_axis, LXW_TRUE);
|
2242
|
+
* @endcode
|
2243
|
+
*
|
2244
|
+
* Note, the axis pointer can also be accessed directly:
|
2245
|
+
*
|
2246
|
+
* @code
|
2247
|
+
* // Equivalent to the above example, without function calls.
|
2248
|
+
* chart_axis_major_gridlines_set_visible(chart->x_axis, LXW_TRUE);
|
2249
|
+
* chart_axis_major_gridlines_set_visible(chart->y_axis, LXW_TRUE);
|
2250
|
+
* @endcode
|
2251
|
+
*
|
2252
|
+
* @return Pointer to the chart axis, or NULL if not found.
|
2253
|
+
*/
|
2254
|
+
lxw_chart_axis *chart_axis_get(lxw_chart *chart,
|
2255
|
+
lxw_chart_axis_type axis_type);
|
2256
|
+
|
2156
2257
|
/**
|
2157
2258
|
* @brief Set the name caption of the an axis.
|
2158
2259
|
*
|
@@ -2279,7 +2380,7 @@ void chart_axis_set_num_font(lxw_chart_axis *axis, lxw_chart_font *font);
|
|
2279
2380
|
* **Axis types**: This function is applicable to to all axes types.
|
2280
2381
|
* See @ref ww_charts_axes.
|
2281
2382
|
*/
|
2282
|
-
void chart_axis_set_num_format(lxw_chart_axis *axis, char *num_format);
|
2383
|
+
void chart_axis_set_num_format(lxw_chart_axis *axis, const char *num_format);
|
2283
2384
|
|
2284
2385
|
/**
|
2285
2386
|
* @brief Set the line properties for a chart axis.
|