write_xlsx 1.12.3 → 1.13.0
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/.rubocop.yml +7 -0
- data/Changes +3 -0
- data/README.md +1 -1
- data/lib/write_xlsx/chartsheet.rb +4 -1
- data/lib/write_xlsx/object_positioning.rb +189 -0
- data/lib/write_xlsx/package/app.rb +1 -1
- data/lib/write_xlsx/page_setup.rb +190 -0
- data/lib/write_xlsx/sheets.rb +3 -3
- data/lib/write_xlsx/utility.rb +57 -9
- data/lib/write_xlsx/version.rb +1 -1
- data/lib/write_xlsx/workbook.rb +34 -34
- data/lib/write_xlsx/worksheet/asset_manager.rb +60 -0
- data/lib/write_xlsx/worksheet/autofilter.rb +388 -0
- data/lib/write_xlsx/worksheet/cell_data.rb +8 -5
- data/lib/write_xlsx/worksheet/cell_data_manager.rb +47 -0
- data/lib/write_xlsx/worksheet/cell_data_store.rb +61 -0
- data/lib/write_xlsx/worksheet/columns.rb +199 -0
- data/lib/write_xlsx/worksheet/comments_support.rb +61 -0
- data/lib/write_xlsx/worksheet/conditional_formats.rb +30 -0
- data/lib/write_xlsx/worksheet/data_writing.rb +990 -0
- data/lib/write_xlsx/worksheet/drawing_methods.rb +308 -0
- data/lib/write_xlsx/worksheet/drawing_preparation.rb +290 -0
- data/lib/write_xlsx/worksheet/drawing_relations.rb +76 -0
- data/lib/write_xlsx/worksheet/drawing_xml_writer.rb +50 -0
- data/lib/write_xlsx/worksheet/formatting.rb +416 -0
- data/lib/write_xlsx/worksheet/initialization.rb +146 -0
- data/lib/write_xlsx/worksheet/panes.rb +64 -0
- data/lib/write_xlsx/worksheet/print_options.rb +72 -0
- data/lib/write_xlsx/worksheet/protection.rb +65 -0
- data/lib/write_xlsx/worksheet/rich_text_helpers.rb +78 -0
- data/lib/write_xlsx/worksheet/row_col_sizing.rb +67 -0
- data/lib/write_xlsx/worksheet/rows.rb +84 -0
- data/lib/write_xlsx/worksheet/selection.rb +41 -0
- data/lib/write_xlsx/worksheet/xml_writer.rb +1241 -0
- data/lib/write_xlsx/worksheet.rb +359 -4530
- metadata +26 -3
- data/lib/write_xlsx/worksheet/page_setup.rb +0 -192
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: write_xlsx
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.13.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hideo NAKAMURA
|
|
@@ -264,6 +264,7 @@ files:
|
|
|
264
264
|
- lib/write_xlsx/image.rb
|
|
265
265
|
- lib/write_xlsx/image_property.rb
|
|
266
266
|
- lib/write_xlsx/inserted_chart.rb
|
|
267
|
+
- lib/write_xlsx/object_positioning.rb
|
|
267
268
|
- lib/write_xlsx/package/app.rb
|
|
268
269
|
- lib/write_xlsx/package/button.rb
|
|
269
270
|
- lib/write_xlsx/package/comments.rb
|
|
@@ -284,6 +285,7 @@ files:
|
|
|
284
285
|
- lib/write_xlsx/package/theme.rb
|
|
285
286
|
- lib/write_xlsx/package/vml.rb
|
|
286
287
|
- lib/write_xlsx/package/xml_writer_simple.rb
|
|
288
|
+
- lib/write_xlsx/page_setup.rb
|
|
287
289
|
- lib/write_xlsx/shape.rb
|
|
288
290
|
- lib/write_xlsx/sheets.rb
|
|
289
291
|
- lib/write_xlsx/sparkline.rb
|
|
@@ -291,10 +293,31 @@ files:
|
|
|
291
293
|
- lib/write_xlsx/version.rb
|
|
292
294
|
- lib/write_xlsx/workbook.rb
|
|
293
295
|
- lib/write_xlsx/worksheet.rb
|
|
296
|
+
- lib/write_xlsx/worksheet/asset_manager.rb
|
|
297
|
+
- lib/write_xlsx/worksheet/autofilter.rb
|
|
294
298
|
- lib/write_xlsx/worksheet/cell_data.rb
|
|
299
|
+
- lib/write_xlsx/worksheet/cell_data_manager.rb
|
|
300
|
+
- lib/write_xlsx/worksheet/cell_data_store.rb
|
|
301
|
+
- lib/write_xlsx/worksheet/columns.rb
|
|
302
|
+
- lib/write_xlsx/worksheet/comments_support.rb
|
|
303
|
+
- lib/write_xlsx/worksheet/conditional_formats.rb
|
|
295
304
|
- lib/write_xlsx/worksheet/data_validation.rb
|
|
305
|
+
- lib/write_xlsx/worksheet/data_writing.rb
|
|
306
|
+
- lib/write_xlsx/worksheet/drawing_methods.rb
|
|
307
|
+
- lib/write_xlsx/worksheet/drawing_preparation.rb
|
|
308
|
+
- lib/write_xlsx/worksheet/drawing_relations.rb
|
|
309
|
+
- lib/write_xlsx/worksheet/drawing_xml_writer.rb
|
|
310
|
+
- lib/write_xlsx/worksheet/formatting.rb
|
|
296
311
|
- lib/write_xlsx/worksheet/hyperlink.rb
|
|
297
|
-
- lib/write_xlsx/worksheet/
|
|
312
|
+
- lib/write_xlsx/worksheet/initialization.rb
|
|
313
|
+
- lib/write_xlsx/worksheet/panes.rb
|
|
314
|
+
- lib/write_xlsx/worksheet/print_options.rb
|
|
315
|
+
- lib/write_xlsx/worksheet/protection.rb
|
|
316
|
+
- lib/write_xlsx/worksheet/rich_text_helpers.rb
|
|
317
|
+
- lib/write_xlsx/worksheet/row_col_sizing.rb
|
|
318
|
+
- lib/write_xlsx/worksheet/rows.rb
|
|
319
|
+
- lib/write_xlsx/worksheet/selection.rb
|
|
320
|
+
- lib/write_xlsx/worksheet/xml_writer.rb
|
|
298
321
|
- lib/write_xlsx/zip_file_utils.rb
|
|
299
322
|
- write_xlsx.gemspec
|
|
300
323
|
homepage: https://github.com/cxn03651/write_xlsx#readme
|
|
@@ -315,7 +338,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
315
338
|
- !ruby/object:Gem::Version
|
|
316
339
|
version: '0'
|
|
317
340
|
requirements: []
|
|
318
|
-
rubygems_version:
|
|
341
|
+
rubygems_version: 4.0.3
|
|
319
342
|
specification_version: 4
|
|
320
343
|
summary: write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.
|
|
321
344
|
test_files: []
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
module Writexlsx
|
|
5
|
-
class Worksheet
|
|
6
|
-
class PageSetup # :nodoc:
|
|
7
|
-
include Writexlsx::Utility
|
|
8
|
-
|
|
9
|
-
attr_accessor :margin_left, :margin_right, :margin_top, :margin_bottom # :nodoc:
|
|
10
|
-
attr_accessor :margin_header, :margin_footer # :nodoc:
|
|
11
|
-
attr_accessor :repeat_rows, :repeat_cols, :print_area # :nodoc:
|
|
12
|
-
attr_accessor :hbreaks, :vbreaks, :scale # :nodoc:
|
|
13
|
-
attr_accessor :fit_page, :fit_width, :fit_height, :page_setup_changed # :nodoc:
|
|
14
|
-
attr_writer :across # :nodoc:
|
|
15
|
-
attr_accessor :orientation, :print_options_changed, :black_white # :nodoc:
|
|
16
|
-
attr_accessor :header, :footer, :header_footer_changed, :header_footer_aligns, :header_footer_scales
|
|
17
|
-
attr_writer :page_start
|
|
18
|
-
attr_writer :horizontal_dpi, :vertical_dpi
|
|
19
|
-
|
|
20
|
-
def initialize # :nodoc:
|
|
21
|
-
@margin_left = 0.7
|
|
22
|
-
@margin_right = 0.7
|
|
23
|
-
@margin_top = 0.75
|
|
24
|
-
@margin_bottom = 0.75
|
|
25
|
-
@margin_header = 0.3
|
|
26
|
-
@margin_footer = 0.3
|
|
27
|
-
@repeat_rows = ''
|
|
28
|
-
@repeat_cols = ''
|
|
29
|
-
@print_area = ''
|
|
30
|
-
@hbreaks = []
|
|
31
|
-
@vbreaks = []
|
|
32
|
-
@scale = 100
|
|
33
|
-
@fit_page = false
|
|
34
|
-
@fit_width = nil
|
|
35
|
-
@fit_height = nil
|
|
36
|
-
@page_setup_changed = false
|
|
37
|
-
@across = false
|
|
38
|
-
@orientation = true
|
|
39
|
-
@header_footer_aligns = true
|
|
40
|
-
@header_footer_scales = true
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def paper=(paper_size)
|
|
44
|
-
if paper_size
|
|
45
|
-
@paper_size = paper_size
|
|
46
|
-
@page_setup_changed = true
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def center_horizontally
|
|
51
|
-
@print_options_changed = true
|
|
52
|
-
@hcenter = true
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def center_vertically
|
|
56
|
-
@print_options_changed = true
|
|
57
|
-
@vcenter = true
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def print_row_col_headers(headers)
|
|
61
|
-
if headers
|
|
62
|
-
@print_headers = true
|
|
63
|
-
@print_options_changed = true
|
|
64
|
-
else
|
|
65
|
-
@print_headers = false
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def hide_gridlines(option)
|
|
70
|
-
if option == 0 || !option
|
|
71
|
-
@print_gridlines = true
|
|
72
|
-
@print_options_changed = true
|
|
73
|
-
else
|
|
74
|
-
@print_gridlines = false
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
#
|
|
79
|
-
# Write the <pageSetup> element.
|
|
80
|
-
#
|
|
81
|
-
# The following is an example taken from Excel.
|
|
82
|
-
#
|
|
83
|
-
# <pageSetup
|
|
84
|
-
# paperSize="9"
|
|
85
|
-
# scale="110"
|
|
86
|
-
# fitToWidth="2"
|
|
87
|
-
# fitToHeight="2"
|
|
88
|
-
# pageOrder="overThenDown"
|
|
89
|
-
# orientation="portrait"
|
|
90
|
-
# useFirstPageNumber="1"
|
|
91
|
-
# blackAndWhite="1"
|
|
92
|
-
# draft="1"
|
|
93
|
-
# horizontalDpi="200"
|
|
94
|
-
# verticalDpi="200"
|
|
95
|
-
# r:id="rId1"
|
|
96
|
-
# />
|
|
97
|
-
#
|
|
98
|
-
def write_page_setup(writer) # :nodoc:
|
|
99
|
-
return unless @page_setup_changed
|
|
100
|
-
|
|
101
|
-
attributes = []
|
|
102
|
-
attributes << ['paperSize', @paper_size] if @paper_size
|
|
103
|
-
attributes << ['scale', @scale] if @scale != 100
|
|
104
|
-
attributes << ['fitToWidth', @fit_width] if @fit_page && @fit_width != 1
|
|
105
|
-
attributes << ['fitToHeight', @fit_height] if @fit_page && @fit_height != 1
|
|
106
|
-
attributes << %w[pageOrder overThenDown] if @across
|
|
107
|
-
attributes << ['firstPageNumber', @page_start] if @page_start && @page_start > 1
|
|
108
|
-
attributes << ['orientation',
|
|
109
|
-
if @orientation
|
|
110
|
-
'portrait'
|
|
111
|
-
else
|
|
112
|
-
'landscape'
|
|
113
|
-
end]
|
|
114
|
-
attributes << ['blackAndWhite', 1] if @black_white
|
|
115
|
-
attributes << ['useFirstPageNumber', 1] if ptrue?(@page_start)
|
|
116
|
-
|
|
117
|
-
# Set the DPI. Mainly only for testing.
|
|
118
|
-
attributes << ['horizontalDpi', @horizontal_dpi] if @horizontal_dpi
|
|
119
|
-
attributes << ['verticalDpi', @vertical_dpi] if @vertical_dpi
|
|
120
|
-
|
|
121
|
-
writer.empty_tag('pageSetup', attributes)
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
#
|
|
125
|
-
# Write the <pageMargins> element.
|
|
126
|
-
#
|
|
127
|
-
def write_page_margins(writer) # :nodoc:
|
|
128
|
-
writer.empty_tag('pageMargins', margin_attributes)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
#
|
|
132
|
-
# Write the <printOptions> element.
|
|
133
|
-
#
|
|
134
|
-
def write_print_options(writer) # :nodoc:
|
|
135
|
-
return unless @print_options_changed
|
|
136
|
-
|
|
137
|
-
attributes = []
|
|
138
|
-
attributes << ['horizontalCentered', 1] if @hcenter
|
|
139
|
-
attributes << ['verticalCentered', 1] if @vcenter
|
|
140
|
-
attributes << ['headings', 1] if @print_headers
|
|
141
|
-
attributes << ['gridLines', 1] if @print_gridlines
|
|
142
|
-
writer.empty_tag('printOptions', attributes)
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
#
|
|
146
|
-
# Write the <headerFooter> element.
|
|
147
|
-
#
|
|
148
|
-
def write_header_footer(writer, excel2003_style) # :nodoc:
|
|
149
|
-
tag = 'headerFooter'
|
|
150
|
-
attributes = []
|
|
151
|
-
attributes << ['scaleWithDoc', 0] unless ptrue?(@header_footer_scales)
|
|
152
|
-
attributes << ['alignWithMargins', 0] unless ptrue?(@header_footer_aligns)
|
|
153
|
-
|
|
154
|
-
if @header_footer_changed
|
|
155
|
-
writer.tag_elements(tag, attributes) do
|
|
156
|
-
write_odd_header(writer) if @header && @header != ''
|
|
157
|
-
write_odd_footer(writer) if @footer && @footer != ''
|
|
158
|
-
end
|
|
159
|
-
elsif excel2003_style
|
|
160
|
-
writer.empty_tag(tag, attributes)
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
private
|
|
165
|
-
|
|
166
|
-
#
|
|
167
|
-
# Write the <oddHeader> element.
|
|
168
|
-
#
|
|
169
|
-
def write_odd_header(writer) # :nodoc:
|
|
170
|
-
writer.data_element('oddHeader', @header)
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
#
|
|
174
|
-
# Write the <oddFooter> element.
|
|
175
|
-
#
|
|
176
|
-
def write_odd_footer(writer) # :nodoc:
|
|
177
|
-
writer.data_element('oddFooter', @footer)
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
def margin_attributes # :nodoc:
|
|
181
|
-
[
|
|
182
|
-
['left', @margin_left],
|
|
183
|
-
['right', @margin_right],
|
|
184
|
-
['top', @margin_top],
|
|
185
|
-
['bottom', @margin_bottom],
|
|
186
|
-
['header', @margin_header],
|
|
187
|
-
['footer', @margin_footer]
|
|
188
|
-
]
|
|
189
|
-
end
|
|
190
|
-
end
|
|
191
|
-
end
|
|
192
|
-
end
|