yomise 0.1.5 → 0.1.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 167dac4985ed0f0a5bd62bcd94d69ef0bc1950737144d338d0e8be87d87b8ae0
4
- data.tar.gz: 254f27cb8a67f6f7c72465179c4c333da5fa61d060078e383b9d10dbb7dd55ba
3
+ metadata.gz: 78002d4377a1d60ce69069176ade33417a2c3a5f314219ad4cc4f7478901ab3c
4
+ data.tar.gz: d305b232bef804cef56c2cf176ad09d76cea221285241bcaabbb742d77ae6e2f
5
5
  SHA512:
6
- metadata.gz: 025d5f00493422f86e8a39db4bf72e3c0ff9fe5631f75cde381e555ac79419f80a687145d93c2148e9980ba1864ad3394690326ae24c411a887951b4cc9875a6
7
- data.tar.gz: 3ffb2fe342adb7b39869f830574e641ad9524076b41b6190d863652abd8f16763ccfd5eab97e5fda4aa92713a92a7d0cfdc35663b666b3e311e137daa246d778
6
+ metadata.gz: 37211454371d320e095c374971a00d57d810521ee4eb61c31818956875b24e52685171b5425ec5cdcd4517090e8832506d24ef736ed6ba67149af2d6847caf3f
7
+ data.tar.gz: 65cc563278294f8da1860cd76c2f8e408043e93374b95e93a84a59d494c58c5869ed3e75772965f4bb9f90351bb24a24a11e284700a30af3e6390ee0188f0aa9
data/Gemfile.lock CHANGED
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- yomise (0.1.5)
4
+ yomise (0.1.6)
5
5
  daru (>= 0.3)
6
6
  matrix
7
7
  roo-xls (>= 1.2.0)
8
8
  rover-df (>= 0.2.7)
9
+ rubyXL (>= 3.4.27)
9
10
  smarter_csv (>= 1.4.2)
10
11
  spreadsheet (>= 1.3.0)
11
12
 
@@ -46,6 +47,9 @@ GEM
46
47
  rspec-support (~> 3.13.0)
47
48
  rspec-support (3.13.7)
48
49
  ruby-ole (1.2.13.1)
50
+ rubyXL (3.4.34)
51
+ nokogiri (>= 1.10.8)
52
+ rubyzip (~> 2.4)
49
53
  rubyzip (2.4.1)
50
54
  smarter_csv (1.12.1)
51
55
  spreadsheet (1.3.1)
data/lib/to_csv.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "daru"
2
2
  require "rover"
3
+ require "roo"
3
4
 
4
5
  class Daru::DataFrame
5
6
  def to_csv()
@@ -118,6 +119,10 @@ class Rover::DataFrame
118
119
  return j.to_rover
119
120
  end
120
121
 
122
+ def map(&block)
123
+ self.to_a.map(&block)
124
+ end
125
+
121
126
  def categorize(col)
122
127
  if col.is_a?(Array)
123
128
  self[col].to_a.uniq
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yomise
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
data/lib/yomise.rb CHANGED
@@ -2,12 +2,23 @@
2
2
  require "csv"
3
3
  require "roo-xls"
4
4
  require "spreadsheet"
5
+ require "rubyXL"
5
6
  require "rover"
6
7
  require "daru"
7
8
  require_relative "./to_csv"
8
9
  require_relative "./longest_line"
9
10
  require_relative "yomise/version"
10
11
 
12
+ ## 欲しい: DateTimeをいい感じのメソッドに変える
13
+ ## 2列目以降ならこんな感じ
14
+ # piv.vectors.to_a[1..].each do |c|
15
+ # piv[c] = piv[c].map { _1.to_s.gsub("T", " ").gsub("+00:00", "")}
16
+ # end
17
+
18
+ ## joinで列順変更不要のものが欲しい
19
+
20
+ # write_excelでDF横並び、縦並びも可にしたい
21
+
11
22
  module Yomise
12
23
  class Error < StandardError; end
13
24
 
@@ -244,6 +255,33 @@ module Yomise
244
255
  end
245
256
  end
246
257
 
258
+ def write_excel(dfs, filename, sheetnames: nil)
259
+
260
+ dfs = [dfs] if !dfs.is_a?(Array)
261
+ if sheetnames.nil?
262
+ sheetnames = dfs.map.with_index {|d, i| "sheet#{i+1}" }
263
+ end
264
+
265
+ workbook = RubyXL::Workbook.new
266
+
267
+ dfs.each_with_index do |df, idx|
268
+ worksheet = workbook.add_worksheet(
269
+ sheetnames.length <= idx ? "sheet#{idx}" : sheetnames[idx].to_s
270
+ )
271
+
272
+ df.to_h.each_with_index do |(key, itms), coli|
273
+ worksheet.add_cell(0, coli, key)
274
+ itms.each_with_index do |itm, linei|
275
+ worksheet.add_cell(linei+1, coli, itm.to_s)
276
+ end
277
+ end
278
+ end
279
+
280
+ workbook.worksheets.delete_at(0)
281
+ workbook.write(filename)
282
+
283
+ end
284
+
247
285
  # Fix Array (Replace specific values to nil, recognize value type and cast values to the type.)
248
286
  def fix_array(array2d, replaced_by_nil, analyze_type)
249
287
  ans = array2d
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yomise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - showata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-07-25 00:00:00.000000000 Z
11
+ date: 2026-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: daru
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.2.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubyXL
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 3.4.27
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 3.4.27
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: spreadsheet
71
85
  requirement: !ruby/object:Gem::Requirement