fast_excel 0.1.2 → 0.1.3
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/.dockerignore +1 -0
- data/Rakefile +27 -0
- data/binaries/libxlsxwriter-alpine.so +0 -0
- data/binaries/libxlsxwriter-darwin.dylib +0 -0
- data/binaries/libxlsxwriter-glibc.so +0 -0
- data/build_alpine_linux.docker +2 -1
- data/build_centos_linux.docker +2 -1
- data/example.rb +5 -2
- data/example_chart.rb +20 -0
- data/example_image.rb +21 -0
- data/fast_excel.gemspec +1 -1
- data/lib/fast_excel/binding.rb +14 -8
- data/lib/fast_excel.rb +4 -0
- metadata +6 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3527e28360ec8d98f3bcd0e2ea27bf3c4aef8709
|
|
4
|
+
data.tar.gz: 34e9b7d88f7070023dd38d4aa2f726ca94c04f00
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1bff87327a872ca3d0db96b05c38e3cc22d31051840711a03c7adc83484ead48395f0c6c2e481ada0baed1477fb0105e5136fa55053ccf6f5561f9073b7cc2ea
|
|
7
|
+
data.tar.gz: 6df2008f272b89ca1169f4d29f95db6a9049c317cf8e295fc384f49627cdb997d185b9f29d972b6982d37ce5d09994bfd13d5418d19dbbb75df49f79d904fdcd
|
data/.dockerignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
libxlsxwriter/.git
|
data/Rakefile
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
namespace :build do
|
|
2
|
+
desc "Build mac binary"
|
|
3
|
+
task :mac do
|
|
4
|
+
Dir.chdir("./libxlsxwriter") do
|
|
5
|
+
system("make clean && make")
|
|
6
|
+
system('cp lib/libxlsxwriter.dylib ../binaries/libxlsxwriter-darwin.dylib')
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
desc "Build linux (libc) binary"
|
|
11
|
+
task :linux do
|
|
12
|
+
system("docker build . -f build_centos_linux.docker -t fast_excel_centos")
|
|
13
|
+
system("docker run -t fast_excel_centos readelf -d lib/libxlsxwriter.so")
|
|
14
|
+
last_container_id = `docker ps -a | grep fast_excel_centos | head -1 | awk '{print $1;}'`.strip
|
|
15
|
+
system("docker cp #{last_container_id}:/srv/libxlsxwriter/lib/libxlsxwriter.so ./binaries/libxlsxwriter-glibc.so")
|
|
16
|
+
system("docker rm #{last_container_id}")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
desc "Build linux (musl) binary"
|
|
20
|
+
task :linux_musl do
|
|
21
|
+
system("docker build . -f build_alpine_linux.docker -t fast_excel_alpine")
|
|
22
|
+
system("docker run -t fast_excel_alpine readelf -d lib/libxlsxwriter.so")
|
|
23
|
+
last_container_id = `docker ps -a | grep fast_excel_alpine | head -1 | awk '{print $1;}'`.strip
|
|
24
|
+
system("docker cp #{last_container_id}:/srv/libxlsxwriter/lib/libxlsxwriter.so ./binaries/libxlsxwriter-alpine.so")
|
|
25
|
+
system("docker rm #{last_container_id}")
|
|
26
|
+
end
|
|
27
|
+
end
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/build_alpine_linux.docker
CHANGED
data/build_centos_linux.docker
CHANGED
data/example.rb
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
require_relative './lib/fast_excel'
|
|
2
2
|
|
|
3
|
-
workbook = FastExcel.open("
|
|
4
|
-
|
|
3
|
+
workbook = FastExcel.open("ffi_example.xlsx", constant_memory: true)
|
|
4
|
+
|
|
5
|
+
workbook.default_format[:font_size] = -1 # user's default
|
|
6
|
+
|
|
7
|
+
worksheet = workbook.add_worksheet("Payments Report")
|
|
5
8
|
|
|
6
9
|
bold = workbook.bold_cell_format
|
|
7
10
|
worksheet.set_column(0, 0, FastExcel::DEF_COL_WIDTH, bold)
|
data/example_chart.rb
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require_relative './lib/fast_excel'
|
|
2
|
+
|
|
3
|
+
workbook = FastExcel.open("chart_ffi.xlsx", constant_memory: true)
|
|
4
|
+
worksheet = workbook.add_worksheet
|
|
5
|
+
|
|
6
|
+
for i in 0..5
|
|
7
|
+
for n in 0..3
|
|
8
|
+
worksheet.write_number(i, n, (i + 1) * (n + 1), nil)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
chart = workbook.add_chart(Libxlsxwriter::enum_type(:chart_type)[:column])
|
|
13
|
+
|
|
14
|
+
chart.add_series("Bob", "Sheet1!$A$1:$A$5")
|
|
15
|
+
chart.add_series("Alice", "Sheet1!$B$1:$B$5")
|
|
16
|
+
chart.add_series("Montgomery", "Sheet1!$C$1:$C$5")
|
|
17
|
+
|
|
18
|
+
worksheet.insert_chart(1, 7, chart)
|
|
19
|
+
|
|
20
|
+
workbook.close
|
data/example_image.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require_relative './lib/fast_excel'
|
|
2
|
+
require 'pp'
|
|
3
|
+
|
|
4
|
+
workbook = FastExcel.open("ffi_example_image.xlsx", constant_memory: false)
|
|
5
|
+
worksheet = workbook.add_worksheet
|
|
6
|
+
|
|
7
|
+
def print_str(struct)
|
|
8
|
+
res = {}
|
|
9
|
+
struct.members.each do |key|
|
|
10
|
+
res[key] = struct[key]
|
|
11
|
+
end
|
|
12
|
+
pp res
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
img_options = Libxlsxwriter::ImageOptions.new
|
|
16
|
+
img_options[:x_offset] = 0
|
|
17
|
+
img_options[:y_offset] = 0
|
|
18
|
+
|
|
19
|
+
worksheet.insert_image_opt(3, 3, "libxlsxwriter/examples/logo.png", img_options)
|
|
20
|
+
|
|
21
|
+
workbook.close
|
data/fast_excel.gemspec
CHANGED
data/lib/fast_excel/binding.rb
CHANGED
|
@@ -1477,18 +1477,18 @@ module Libxlsxwriter
|
|
|
1477
1477
|
class Format < FFI::Struct
|
|
1478
1478
|
include FormatWrappers
|
|
1479
1479
|
layout :file, :pointer,
|
|
1480
|
-
:xf_format_indices, HashTable,
|
|
1480
|
+
:xf_format_indices, HashTable.ptr,
|
|
1481
1481
|
:num_xf_formats, :pointer,
|
|
1482
|
-
:xf_index, :
|
|
1483
|
-
:dxf_index, :
|
|
1482
|
+
:xf_index, :int32_t,
|
|
1483
|
+
:dxf_index, :int32_t,
|
|
1484
1484
|
:num_format, [:char, 128],
|
|
1485
1485
|
:font_name, [:char, 128],
|
|
1486
1486
|
:font_scheme, [:char, 128],
|
|
1487
|
-
:num_format_index, :
|
|
1488
|
-
:font_index, :
|
|
1487
|
+
:num_format_index, :uint16,
|
|
1488
|
+
:font_index, :uint16,
|
|
1489
1489
|
:has_font, :uchar,
|
|
1490
1490
|
:has_dxf_font, :uchar,
|
|
1491
|
-
:font_size, :
|
|
1491
|
+
:font_size, :uint16,
|
|
1492
1492
|
:bold, :uchar,
|
|
1493
1493
|
:italic, :uchar,
|
|
1494
1494
|
:font_color, :int,
|
|
@@ -7745,7 +7745,11 @@ module Libxlsxwriter
|
|
|
7745
7745
|
def add_format()
|
|
7746
7746
|
Format.new Libxlsxwriter.workbook_add_format(self)
|
|
7747
7747
|
end
|
|
7748
|
-
|
|
7748
|
+
|
|
7749
|
+
def default_format()
|
|
7750
|
+
Format.new Libxlsxwriter.workbook_default_format(self)
|
|
7751
|
+
end
|
|
7752
|
+
|
|
7749
7753
|
# @param [Integer] chart_type
|
|
7750
7754
|
# @return [Chart]
|
|
7751
7755
|
def add_chart(chart_type)
|
|
@@ -7862,7 +7866,9 @@ module Libxlsxwriter
|
|
|
7862
7866
|
:has_bmp, :uchar,
|
|
7863
7867
|
:used_xf_formats, HashTable
|
|
7864
7868
|
end
|
|
7865
|
-
|
|
7869
|
+
|
|
7870
|
+
attach_function :workbook_default_format, :workbook_default_format, [Workbook], Format
|
|
7871
|
+
|
|
7866
7872
|
# (Not documented)
|
|
7867
7873
|
#
|
|
7868
7874
|
# @method workbook_new(filename)
|
data/lib/fast_excel.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fast_excel
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pavel Evstigneev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-02-
|
|
11
|
+
date: 2017-02-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: ffi
|
|
@@ -37,17 +37,21 @@ executables: []
|
|
|
37
37
|
extensions: []
|
|
38
38
|
extra_rdoc_files: []
|
|
39
39
|
files:
|
|
40
|
+
- ".dockerignore"
|
|
40
41
|
- ".gitignore"
|
|
41
42
|
- BUILD.md
|
|
42
43
|
- Gemfile
|
|
43
44
|
- Gemfile.lock
|
|
44
45
|
- README.md
|
|
46
|
+
- Rakefile
|
|
45
47
|
- binaries/libxlsxwriter-alpine.so
|
|
46
48
|
- binaries/libxlsxwriter-darwin.dylib
|
|
47
49
|
- binaries/libxlsxwriter-glibc.so
|
|
48
50
|
- build_alpine_linux.docker
|
|
49
51
|
- build_centos_linux.docker
|
|
50
52
|
- example.rb
|
|
53
|
+
- example_chart.rb
|
|
54
|
+
- example_image.rb
|
|
51
55
|
- fast_excel.gemspec
|
|
52
56
|
- lib/fast_excel.rb
|
|
53
57
|
- lib/fast_excel/binding.rb
|