excel2csv 0.1.0 → 0.2.0
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.
- data/excel2csv.gemspec +1 -1
- data/lib/excel2csv/info.rb +17 -14
- data/lib/excel2csv/version.rb +1 -1
- data/lib/excel2csv.jar +0 -0
- data/lib/excel2csv.rb +20 -4
- metadata +7 -7
data/excel2csv.gemspec
CHANGED
data/lib/excel2csv/info.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
require
|
1
|
+
require 'fileutils'
|
2
|
+
require 'json'
|
2
3
|
|
3
4
|
module Excel2CSV
|
4
5
|
class Info
|
@@ -13,20 +14,22 @@ module Excel2CSV
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def read
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
17
|
+
info = JSON.parse(File.read("#{@working_folder}/info.json"))
|
18
|
+
info['sheets'].each do |sheet_info|
|
19
|
+
@sheets << {
|
20
|
+
path: "#{@working_folder}/#{sheet_info['fullOutput']}",
|
21
|
+
total_rows: sheet_info['rowCount'],
|
22
|
+
rows: sheet_info['rowCount'],
|
23
|
+
title: sheet_info['title']
|
24
|
+
}
|
25
|
+
|
26
|
+
@previews << {
|
27
|
+
path: "#{@working_folder}/#{sheet_info['previewOutput']}",
|
28
|
+
total_rows: sheet_info['rowCount'],
|
29
|
+
rows: info['perSheetRowLimitForPreviews'],
|
30
|
+
title: sheet_info['title']
|
31
|
+
} if sheet_info['previewOutput']
|
27
32
|
end
|
28
|
-
@previews.sort! {|a, b| a[:path] <=> b[:path]}
|
29
|
-
@sheets.sort! {|a, b| a[:path] <=> b[:path]}
|
30
33
|
end
|
31
34
|
|
32
35
|
def clean
|
data/lib/excel2csv/version.rb
CHANGED
data/lib/excel2csv.jar
CHANGED
Binary file
|
data/lib/excel2csv.rb
CHANGED
@@ -3,6 +3,7 @@ require "excel2csv/info"
|
|
3
3
|
|
4
4
|
require "csv"
|
5
5
|
require "tmpdir"
|
6
|
+
require "json"
|
6
7
|
|
7
8
|
module Excel2CSV
|
8
9
|
|
@@ -60,13 +61,20 @@ module Excel2CSV
|
|
60
61
|
limit = options[:rows]
|
61
62
|
path = File.expand_path(path)
|
62
63
|
if path =~ /\.csv$/
|
64
|
+
json = {
|
65
|
+
'generatePreviews' => !!limit,
|
66
|
+
'perSheetRowLimitForPreviews' => limit,
|
67
|
+
'sourceFile' => path.to_s,
|
68
|
+
'targetDir' => working_folder
|
69
|
+
}
|
63
70
|
total_rows = 0
|
64
71
|
preview_rows = []
|
65
72
|
opts = clean_options(options)
|
66
|
-
|
73
|
+
sheetJson = {}
|
74
|
+
|
75
|
+
full_output = "1-#{total_rows}.csv"
|
67
76
|
# Transcode file to utf-8, count total and gen preview
|
68
|
-
|
69
|
-
CSV.open("#{working_folder}/1-#{total_rows}.csv", "wb") do |csv|
|
77
|
+
CSV.open("#{working_folder}/#{full_output}", "wb") do |csv|
|
70
78
|
CSV.foreach(path, opts) do |row|
|
71
79
|
if limit && total_rows <= limit
|
72
80
|
preview_rows << row
|
@@ -75,12 +83,20 @@ module Excel2CSV
|
|
75
83
|
csv << row
|
76
84
|
end
|
77
85
|
end
|
86
|
+
sheetJson['fullOutput'] = full_output
|
87
|
+
sheetJson['rowCount'] = total_rows
|
78
88
|
|
79
89
|
if limit
|
80
|
-
|
90
|
+
preview_output = "1-#{limit}-of-#{total_rows}-preview.csv"
|
91
|
+
sheetJson['previewOutput'] = preview_output
|
92
|
+
CSV.open("#{working_folder}/#{preview_output}", "wb") do |csv|
|
81
93
|
preview_rows.each {|row| csv << row}
|
82
94
|
end
|
83
95
|
end
|
96
|
+
json['sheets'] = [sheetJson]
|
97
|
+
File.open "#{working_folder}/info.json", "wb" do |f|
|
98
|
+
f.write(JSON.generate(json))
|
99
|
+
end
|
84
100
|
else
|
85
101
|
java_options = options[:java_options] || "-Dfile.encoding=utf8 -Xms512m -Xmx512m -XX:MaxPermSize=256m"
|
86
102
|
rows_limit = limit ? "-r #{limit}" : ""
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: excel2csv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,19 +9,19 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-03-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70145909631480 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '2.
|
21
|
+
version: '2.8'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70145909631480
|
25
25
|
description: gem for converting Excel files to csv
|
26
26
|
email:
|
27
27
|
- yury.korolev@gmail.com
|
@@ -66,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
66
|
version: '0'
|
67
67
|
requirements: []
|
68
68
|
rubyforge_project:
|
69
|
-
rubygems_version: 1.8.
|
69
|
+
rubygems_version: 1.8.17
|
70
70
|
signing_key:
|
71
71
|
specification_version: 3
|
72
72
|
summary: extract excel worksheets to csv files
|