write_xlsx 0.88.0 → 0.89.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/.travis.yml +43 -0
- data/Changes +5 -0
- data/README.md +1 -1
- data/lib/write_xlsx/version.rb +1 -1
- data/lib/write_xlsx/worksheet.rb +26 -6
- data/lib/write_xlsx/worksheet/cell_data.rb +21 -0
- data/lib/write_xlsx/worksheet/hyperlink.rb +6 -1
- data/test/regression/test_format14.rb +26 -0
- data/test/regression/test_hyperlink25.rb +27 -0
- data/test/regression/test_hyperlink26.rb +27 -0
- data/test/regression/test_types02.rb +25 -0
- data/test/regression/test_types08.rb +31 -0
- data/test/regression/xlsx_files/format14.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink25.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink26.xlsx +0 -0
- data/test/regression/xlsx_files/types02.xlsx +0 -0
- data/test/regression/xlsx_files/types08.xlsx +0 -0
- metadata +23 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 980d940d4b7386abe4429d994fdb89621a410b7dee208f931e0571034c40b7df
|
4
|
+
data.tar.gz: 376c1bd91e9d4139af09b69a35509125566a3a44a072f91e27cfd38524f579ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2be6712f3085f77b124f8ce6a400acf9a9c3edea9e27bcefcdef0926af29b29f2cb31eb3b82f5291bf1a6294afd4c504a1e2f32602f7fbbd1aeacc54d79fb9a2
|
7
|
+
data.tar.gz: 15cf003eb84c5312b01f4890e8be4299faf88f92710706f3c01a98c28ad35fb9ec1fbbcab253724804e1b4bfdcfa7c4cf0378d8304685f49c60bfa30651737b0
|
data/.travis.yml
CHANGED
@@ -1,7 +1,50 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
+
- 3.0.0
|
4
|
+
- 2.7.2
|
5
|
+
- 2.7.1
|
6
|
+
- 2.7.0
|
7
|
+
- 2.6.6
|
8
|
+
- 2.6.5
|
9
|
+
- 2.6.4
|
10
|
+
- 2.6.3
|
11
|
+
- 2.6.2
|
12
|
+
- 2.6.1
|
13
|
+
- 2.6.0
|
14
|
+
- 2.5.8
|
15
|
+
- 2.5.7
|
16
|
+
- 2.5.6
|
17
|
+
- 2.5.5
|
18
|
+
- 2.5.4
|
19
|
+
- 2.5.3
|
20
|
+
- 2.5.2
|
21
|
+
- 2.5.1
|
22
|
+
- 2.5.0
|
23
|
+
- 2.4.10
|
24
|
+
- 2.4.9
|
25
|
+
- 2.4.8
|
26
|
+
- 2.4.7
|
27
|
+
- 2.4.6
|
28
|
+
- 2.4.5
|
29
|
+
- 2.4.4
|
30
|
+
- 2.4.3
|
31
|
+
- 2.4.2
|
32
|
+
- 2.4.1
|
33
|
+
- 2.4.0
|
34
|
+
- 2.3.8
|
35
|
+
- 2.3.7
|
36
|
+
- 2.3.6
|
37
|
+
- 2.3.5
|
38
|
+
- 2.3.4
|
39
|
+
- 2.3.3
|
40
|
+
- 2.3.2
|
3
41
|
- 2.3.1
|
4
42
|
- 2.3.0
|
43
|
+
- 2.2.10
|
44
|
+
- 2.2.9
|
45
|
+
- 2.2.8
|
46
|
+
- 2.2.7
|
47
|
+
- 2.2.6
|
5
48
|
- 2.2.5
|
6
49
|
- 2.2.4
|
7
50
|
- 2.2.3
|
data/Changes
CHANGED
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
gem to create a new file in the Excel 2007+ XLSX format, and you can use the
|
7
7
|
same interface as writeexcel gem. write_xlsx is converted from Perl's module
|
8
|
-
[Excel::Writer::XLSX-0.
|
8
|
+
[Excel::Writer::XLSX-0.89](https://github.com/jmcnamara/excel-writer-xlsx) .
|
9
9
|
|
10
10
|
## Description
|
11
11
|
|
data/lib/write_xlsx/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
WriteXLSX_VERSION = "0.
|
1
|
+
WriteXLSX_VERSION = "0.89.0"
|
data/lib/write_xlsx/worksheet.rb
CHANGED
@@ -2529,6 +2529,26 @@ def write_array_formula(*args)
|
|
2529
2529
|
end
|
2530
2530
|
end
|
2531
2531
|
|
2532
|
+
#
|
2533
|
+
# write_boolean(row, col, val, format)
|
2534
|
+
#
|
2535
|
+
# Write a boolean value to the specified row and column (zero indexed).
|
2536
|
+
#
|
2537
|
+
def write_boolean(*args)
|
2538
|
+
row, col, val, xf = row_col_notation(args)
|
2539
|
+
raise WriteXLSXInsufficientArgumentError if row.nil? || col.nil?
|
2540
|
+
|
2541
|
+
val = val ? 1 : 0 # Boolean value.
|
2542
|
+
# xf : cell format.
|
2543
|
+
type = 'l' # The data type
|
2544
|
+
|
2545
|
+
# Check that row and col are valid and store max and min values
|
2546
|
+
check_dimensions(row, col)
|
2547
|
+
store_row_col_max_min_values(row, col)
|
2548
|
+
|
2549
|
+
store_data_to_table(BooleanCellData.new(self, row, col, val, xf))
|
2550
|
+
end
|
2551
|
+
|
2532
2552
|
#
|
2533
2553
|
# :call-seq:
|
2534
2554
|
# update_format_with_params(row, col, format_params)
|
@@ -2537,12 +2557,12 @@ def write_array_formula(*args)
|
|
2537
2557
|
#
|
2538
2558
|
# worksheet.update_format_with_params(0, 0, color: 'red')
|
2539
2559
|
#
|
2540
|
-
# This method is used to update formatting of the cell keeping cell contents
|
2560
|
+
# This method is used to update formatting of the cell keeping cell contents
|
2541
2561
|
# and formatting.
|
2542
2562
|
#
|
2543
|
-
# If the cell doesn't have CellData object, this method create a CellData
|
2563
|
+
# If the cell doesn't have CellData object, this method create a CellData
|
2544
2564
|
# using write_blank method.
|
2545
|
-
# If the cell has CellData, this method fetch contents and format of cell from
|
2565
|
+
# If the cell has CellData, this method fetch contents and format of cell from
|
2546
2566
|
# the CellData object and recreate CellData using write method.
|
2547
2567
|
#
|
2548
2568
|
def update_format_with_params(*args)
|
@@ -2590,7 +2610,7 @@ def update_format_with_params(*args)
|
|
2590
2610
|
#
|
2591
2611
|
# worksheet.update_range_format_with_params(0, 0, 3, 3, color: 'red')
|
2592
2612
|
#
|
2593
|
-
# This method is used to update formatting of multiple cells keeping cells' contents
|
2613
|
+
# This method is used to update formatting of multiple cells keeping cells' contents
|
2594
2614
|
# and formatting.
|
2595
2615
|
#
|
2596
2616
|
#
|
@@ -5813,11 +5833,11 @@ def position_object_pixels(col_start, row_start, x1, y1, width, height) #:nodoc:
|
|
5813
5833
|
y1 += size_row(row_start - 1)
|
5814
5834
|
row_start -= 1
|
5815
5835
|
end
|
5816
|
-
|
5836
|
+
|
5817
5837
|
# Ensure that the image isn't shifted off the page at top left.
|
5818
5838
|
x1 = 0 if x1 < 0
|
5819
5839
|
y1 = 0 if y1 < 0
|
5820
|
-
|
5840
|
+
|
5821
5841
|
# Calculate the absolute x offset of the top-left vertex.
|
5822
5842
|
if @col_size_changed
|
5823
5843
|
x_abs = (0 .. col_start-1).inject(0) {|sum, col| sum += size_col(col)}
|
@@ -128,6 +128,27 @@ def write_cell
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
+
class BooleanCellData < CellData # :nodoc:
|
132
|
+
def initialize(worksheet, row, col, val, xf)
|
133
|
+
@worksheet = worksheet
|
134
|
+
@row, @col, @token, @xf = row, col, val, xf
|
135
|
+
end
|
136
|
+
|
137
|
+
def data
|
138
|
+
@token
|
139
|
+
end
|
140
|
+
|
141
|
+
def write_cell
|
142
|
+
attributes = cell_attributes
|
143
|
+
|
144
|
+
attributes << ['t', 'b']
|
145
|
+
@worksheet.writer.tag_elements('c', attributes) do
|
146
|
+
@worksheet.write_cell_value(token)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
|
131
152
|
class BlankCellData < CellData # :nodoc:
|
132
153
|
def initialize(worksheet, row, col, xf)
|
133
154
|
@worksheet = worksheet
|
@@ -27,8 +27,13 @@ def initialize(url, str, tip)
|
|
27
27
|
normalized_str = str.sub(/^mailto:/, '')
|
28
28
|
|
29
29
|
# Split url into the link and optional anchor/location.
|
30
|
-
url,
|
30
|
+
url, *anchors = url.split(/#/)
|
31
31
|
url ||= ''
|
32
|
+
if anchors.empty?
|
33
|
+
@url_str = nil
|
34
|
+
else
|
35
|
+
@url_str = anchors.join('#')
|
36
|
+
end
|
32
37
|
|
33
38
|
# Escape URL unless it looks already escaped.
|
34
39
|
url = escape_url(url)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
class TestRegressionFormat14 < Minitest::Test
|
5
|
+
def setup
|
6
|
+
setup_dir_var
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
@tempfile.close(true)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_format14
|
14
|
+
@xlsx = 'format14.xlsx'
|
15
|
+
workbook = WriteXLSX.new(@io)
|
16
|
+
worksheet = workbook.add_worksheet
|
17
|
+
center = workbook.add_format
|
18
|
+
|
19
|
+
center.set_center_across
|
20
|
+
|
21
|
+
worksheet.write('A1', 'foo', center)
|
22
|
+
|
23
|
+
workbook.close
|
24
|
+
compare_for_regression
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
class TestRegressionHyperlink25 < Minitest::Test
|
5
|
+
def setup
|
6
|
+
setup_dir_var
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
@tempfile.close(true) if @tempfile
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_hyperlink25
|
14
|
+
@xlsx = 'hyperlink25.xlsx'
|
15
|
+
workbook = WriteXLSX.new(@io)
|
16
|
+
worksheet = workbook.add_worksheet
|
17
|
+
|
18
|
+
worksheet.write_url('A1', 'http://www.google.com/#foo#bar')
|
19
|
+
|
20
|
+
workbook.close
|
21
|
+
|
22
|
+
compare_for_regression(
|
23
|
+
nil,
|
24
|
+
{ 'xl/workbook.xml' => ['<workbookView'] }
|
25
|
+
)
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
class TestRegressionHyperlink26 < Minitest::Test
|
5
|
+
def setup
|
6
|
+
setup_dir_var
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
@tempfile.close(true) if @tempfile
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_hyperlink26
|
14
|
+
@xlsx = 'hyperlink26.xlsx'
|
15
|
+
workbook = WriteXLSX.new(@io)
|
16
|
+
worksheet = workbook.add_worksheet
|
17
|
+
|
18
|
+
worksheet.write_url('A1', 'http://www.google.com/foo#bar#baz')
|
19
|
+
|
20
|
+
workbook.close
|
21
|
+
|
22
|
+
compare_for_regression(
|
23
|
+
nil,
|
24
|
+
{ 'xl/workbook.xml' => ['<workbookView'] }
|
25
|
+
)
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
class TestRegressionTypes02 < Minitest::Test
|
5
|
+
def setup
|
6
|
+
setup_dir_var
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
@tempfile.close(true) if @tempfile
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_types02
|
14
|
+
@xlsx = 'types02.xlsx'
|
15
|
+
workbook = WriteXLSX.new(@io)
|
16
|
+
worksheet = workbook.add_worksheet
|
17
|
+
|
18
|
+
worksheet.write_boolean('A1', 1)
|
19
|
+
worksheet.write_boolean('A2', false)
|
20
|
+
|
21
|
+
workbook.close
|
22
|
+
|
23
|
+
compare_for_regression
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
class TestRegressionTypes08 < Minitest::Test
|
5
|
+
def setup
|
6
|
+
setup_dir_var
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
@tempfile.close(true) if @tempfile
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_types08
|
14
|
+
@xlsx = 'types08.xlsx'
|
15
|
+
workbook = WriteXLSX.new(@io)
|
16
|
+
worksheet = workbook.add_worksheet
|
17
|
+
|
18
|
+
bold = workbook.add_format(:bold => 1)
|
19
|
+
italic = workbook.add_format(:italic => 1)
|
20
|
+
|
21
|
+
worksheet.write_boolean('A1', 'True', bold)
|
22
|
+
worksheet.write_boolean('A2', nil, italic)
|
23
|
+
|
24
|
+
workbook.close
|
25
|
+
|
26
|
+
compare_for_regression(
|
27
|
+
['xl/styles.xml'],
|
28
|
+
{}
|
29
|
+
)
|
30
|
+
end
|
31
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: write_xlsx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.89.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hideo NAKAMURA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -805,6 +805,7 @@ files:
|
|
805
805
|
- test/regression/test_format11.rb
|
806
806
|
- test/regression/test_format12.rb
|
807
807
|
- test/regression/test_format13.rb
|
808
|
+
- test/regression/test_format14.rb
|
808
809
|
- test/regression/test_formula_results01.rb
|
809
810
|
- test/regression/test_gridlines01.rb
|
810
811
|
- test/regression/test_header01.rb
|
@@ -848,6 +849,8 @@ files:
|
|
848
849
|
- test/regression/test_hyperlink22.rb
|
849
850
|
- test/regression/test_hyperlink23.rb
|
850
851
|
- test/regression/test_hyperlink24.rb
|
852
|
+
- test/regression/test_hyperlink25.rb
|
853
|
+
- test/regression/test_hyperlink26.rb
|
851
854
|
- test/regression/test_image01.rb
|
852
855
|
- test/regression/test_image02.rb
|
853
856
|
- test/regression/test_image03.rb
|
@@ -1011,6 +1014,8 @@ files:
|
|
1011
1014
|
- test/regression/test_tutorial01.rb
|
1012
1015
|
- test/regression/test_tutorial02.rb
|
1013
1016
|
- test/regression/test_tutorial03.rb
|
1017
|
+
- test/regression/test_types02.rb
|
1018
|
+
- test/regression/test_types08.rb
|
1014
1019
|
- test/regression/test_update_range_format_with_params.rb
|
1015
1020
|
- test/regression/test_urls_as_strings.rb
|
1016
1021
|
- test/regression/test_utf8_01.rb
|
@@ -1421,6 +1426,7 @@ files:
|
|
1421
1426
|
- test/regression/xlsx_files/format11.xlsx
|
1422
1427
|
- test/regression/xlsx_files/format12.xlsx
|
1423
1428
|
- test/regression/xlsx_files/format13.xlsx
|
1429
|
+
- test/regression/xlsx_files/format14.xlsx
|
1424
1430
|
- test/regression/xlsx_files/formula_results01.xlsx
|
1425
1431
|
- test/regression/xlsx_files/gridlines01.xlsx
|
1426
1432
|
- test/regression/xlsx_files/header01.xlsx
|
@@ -1464,6 +1470,8 @@ files:
|
|
1464
1470
|
- test/regression/xlsx_files/hyperlink22.xlsx
|
1465
1471
|
- test/regression/xlsx_files/hyperlink23.xlsx
|
1466
1472
|
- test/regression/xlsx_files/hyperlink24.xlsx
|
1473
|
+
- test/regression/xlsx_files/hyperlink25.xlsx
|
1474
|
+
- test/regression/xlsx_files/hyperlink26.xlsx
|
1467
1475
|
- test/regression/xlsx_files/image01.xlsx
|
1468
1476
|
- test/regression/xlsx_files/image02.xlsx
|
1469
1477
|
- test/regression/xlsx_files/image03.xlsx
|
@@ -1628,6 +1636,8 @@ files:
|
|
1628
1636
|
- test/regression/xlsx_files/tutorial01.xlsx
|
1629
1637
|
- test/regression/xlsx_files/tutorial02.xlsx
|
1630
1638
|
- test/regression/xlsx_files/tutorial03.xlsx
|
1639
|
+
- test/regression/xlsx_files/types02.xlsx
|
1640
|
+
- test/regression/xlsx_files/types08.xlsx
|
1631
1641
|
- test/regression/xlsx_files/update_range_format_with_params.xlsx
|
1632
1642
|
- test/regression/xlsx_files/urls_as_strings.xlsx
|
1633
1643
|
- test/regression/xlsx_files/utf8_01.xlsx
|
@@ -1777,7 +1787,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1777
1787
|
- !ruby/object:Gem::Version
|
1778
1788
|
version: '0'
|
1779
1789
|
requirements: []
|
1780
|
-
rubygems_version: 3.
|
1790
|
+
rubygems_version: 3.1.4
|
1781
1791
|
signing_key:
|
1782
1792
|
specification_version: 4
|
1783
1793
|
summary: write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.
|
@@ -2383,6 +2393,7 @@ test_files:
|
|
2383
2393
|
- test/regression/test_format11.rb
|
2384
2394
|
- test/regression/test_format12.rb
|
2385
2395
|
- test/regression/test_format13.rb
|
2396
|
+
- test/regression/test_format14.rb
|
2386
2397
|
- test/regression/test_formula_results01.rb
|
2387
2398
|
- test/regression/test_gridlines01.rb
|
2388
2399
|
- test/regression/test_header01.rb
|
@@ -2426,6 +2437,8 @@ test_files:
|
|
2426
2437
|
- test/regression/test_hyperlink22.rb
|
2427
2438
|
- test/regression/test_hyperlink23.rb
|
2428
2439
|
- test/regression/test_hyperlink24.rb
|
2440
|
+
- test/regression/test_hyperlink25.rb
|
2441
|
+
- test/regression/test_hyperlink26.rb
|
2429
2442
|
- test/regression/test_image01.rb
|
2430
2443
|
- test/regression/test_image02.rb
|
2431
2444
|
- test/regression/test_image03.rb
|
@@ -2589,6 +2602,8 @@ test_files:
|
|
2589
2602
|
- test/regression/test_tutorial01.rb
|
2590
2603
|
- test/regression/test_tutorial02.rb
|
2591
2604
|
- test/regression/test_tutorial03.rb
|
2605
|
+
- test/regression/test_types02.rb
|
2606
|
+
- test/regression/test_types08.rb
|
2592
2607
|
- test/regression/test_update_range_format_with_params.rb
|
2593
2608
|
- test/regression/test_urls_as_strings.rb
|
2594
2609
|
- test/regression/test_utf8_01.rb
|
@@ -2999,6 +3014,7 @@ test_files:
|
|
2999
3014
|
- test/regression/xlsx_files/format11.xlsx
|
3000
3015
|
- test/regression/xlsx_files/format12.xlsx
|
3001
3016
|
- test/regression/xlsx_files/format13.xlsx
|
3017
|
+
- test/regression/xlsx_files/format14.xlsx
|
3002
3018
|
- test/regression/xlsx_files/formula_results01.xlsx
|
3003
3019
|
- test/regression/xlsx_files/gridlines01.xlsx
|
3004
3020
|
- test/regression/xlsx_files/header01.xlsx
|
@@ -3042,6 +3058,8 @@ test_files:
|
|
3042
3058
|
- test/regression/xlsx_files/hyperlink22.xlsx
|
3043
3059
|
- test/regression/xlsx_files/hyperlink23.xlsx
|
3044
3060
|
- test/regression/xlsx_files/hyperlink24.xlsx
|
3061
|
+
- test/regression/xlsx_files/hyperlink25.xlsx
|
3062
|
+
- test/regression/xlsx_files/hyperlink26.xlsx
|
3045
3063
|
- test/regression/xlsx_files/image01.xlsx
|
3046
3064
|
- test/regression/xlsx_files/image02.xlsx
|
3047
3065
|
- test/regression/xlsx_files/image03.xlsx
|
@@ -3206,6 +3224,8 @@ test_files:
|
|
3206
3224
|
- test/regression/xlsx_files/tutorial01.xlsx
|
3207
3225
|
- test/regression/xlsx_files/tutorial02.xlsx
|
3208
3226
|
- test/regression/xlsx_files/tutorial03.xlsx
|
3227
|
+
- test/regression/xlsx_files/types02.xlsx
|
3228
|
+
- test/regression/xlsx_files/types08.xlsx
|
3209
3229
|
- test/regression/xlsx_files/update_range_format_with_params.xlsx
|
3210
3230
|
- test/regression/xlsx_files/urls_as_strings.xlsx
|
3211
3231
|
- test/regression/xlsx_files/utf8_01.xlsx
|