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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc15938a6e5c2e6d2708f9c7e78339d4e4a0f324
4
- data.tar.gz: 27021e66d576016c1c6c17ec7898d52651941ffe
3
+ metadata.gz: 3527e28360ec8d98f3bcd0e2ea27bf3c4aef8709
4
+ data.tar.gz: 34e9b7d88f7070023dd38d4aa2f726ca94c04f00
5
5
  SHA512:
6
- metadata.gz: d0a00cb4569d0805b90de9e3207cc7a9e9e3e59caaf18389a8969dae198532547b92e59903adc4d8de5927d11c91a4e4ef46ba9926c5973b174ecebe9747f35f
7
- data.tar.gz: 62b173870cf8763921e39f7f725073daab2d72efcf6855da64090e80eabac8d5c6806303f9a6d928a427c76eb50345bdddffa60cb0697464b3aa14fd65f03d71
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
@@ -12,4 +12,5 @@ WORKDIR /srv/libxlsxwriter
12
12
 
13
13
  COPY ./libxlsxwriter /srv/libxlsxwriter
14
14
 
15
- RUN make
15
+ RUN make clean
16
+ RUN make
@@ -9,4 +9,5 @@ WORKDIR /srv/libxlsxwriter
9
9
 
10
10
  COPY ./libxlsxwriter /srv/libxlsxwriter
11
11
 
12
- RUN make
12
+ RUN make clean
13
+ RUN make
data/example.rb CHANGED
@@ -1,7 +1,10 @@
1
1
  require_relative './lib/fast_excel'
2
2
 
3
- workbook = FastExcel.open("hello_world_ffi.xlsx", constant_memory: true)
4
- worksheet = workbook.add_worksheet("Garuda Payments")
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "fast_excel"
3
- s.version = "0.1.2"
3
+ s.version = "0.1.3"
4
4
  s.author = ["Pavel Evstigneev"]
5
5
  s.email = ["pavel.evst@gmail.com"]
6
6
  s.homepage = "https://github.com/paxa/fast_excel"
@@ -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, :int,
1483
- :dxf_index, :int,
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, :ushort,
1488
- :font_index, :ushort,
1487
+ :num_format_index, :uint16,
1488
+ :font_index, :uint16,
1489
1489
  :has_font, :uchar,
1490
1490
  :has_dxf_font, :uchar,
1491
- :font_size, :ushort,
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
@@ -80,6 +80,10 @@ module FastExcel
80
80
  format.set_num_format(pattern)
81
81
  format
82
82
  end
83
+
84
+ def add_worksheet(sheetname = nil)
85
+ super
86
+ end
83
87
  end
84
88
 
85
89
  module WorksheetExt
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.2
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-27 00:00:00.000000000 Z
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