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