write_xlsx 0.88.0 → 0.89.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|