xls_to_rdf 0.0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/xls_to_rdf.rb +74 -0
  3. metadata +72 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3e46eac8eddc802944efd5c423c4d4b6c2d03aae
4
+ data.tar.gz: 45cd4dcb7047bbf32459bdd6c6ca326e09a18bd9
5
+ SHA512:
6
+ metadata.gz: 8dd3f821fbf0115c9679b261b87a7082f5f9433addc83ccfca6c18695ff113324d320b863c7da0ac4d3c254a61d3f09616424351fd1a4f53898ec5442f558642
7
+ data.tar.gz: 247d0435c0977cccc822524bc859b96ef9f2f42a185a2783ee4d956cb65af32516c4818805e57443345d47f1332572a636922a72fae8dc1f89015d43498e3f00
@@ -0,0 +1,74 @@
1
+ require 'roo'
2
+
3
+ require 'linkeddata'
4
+
5
+ class XlsToRdf
6
+
7
+ def xls_to_rdf(xls, xls_options = nil)
8
+
9
+ xlsx = Roo::Excelx.new(xls)
10
+
11
+ xls_options ||= { :sheets => xlsx.sheets}
12
+
13
+
14
+ # xlsx = Roo::Excelx.new("test1.xlsx")
15
+ # puts xlsx.info
16
+ # puts xlsx.sheets
17
+ # csv_options ||= { :col_sep => ',', :headers => true}
18
+ sheets = xls_options[:sheets]
19
+ puts sheets
20
+
21
+ graph = RDF::Graph.new
22
+ wdc = RDF::Vocabulary.new("http://vieslav.pl/csv/0.1/")
23
+ # xlsx.sheets.each do |sheet|
24
+ sheets.each do |sheet|
25
+ puts sheet
26
+ xlsx.default_sheet = sheet
27
+ table = RDF::Node.new
28
+ # graph << [table, RDF.type, wdc['table']]
29
+
30
+ # graph << [table, RDF::RDFS.label, sheet]
31
+ n=1
32
+ header = []
33
+ xlsx.each_row_streaming(pad_cells: true) do |row|
34
+ # puts n
35
+ if n==1 then
36
+ row.each do |cell|
37
+ # puts cell.coordinate
38
+ value = cell.cell_value
39
+ if value != nil then
40
+ header << value
41
+ # puts value
42
+ end
43
+ end
44
+ else
45
+ bnode = RDF::Node.new
46
+ # graph << [table, RDF::RDFS.member, bnode]
47
+ graph << [bnode, RDF.type, wdc[sheet.strip]]
48
+ # graph << [bnode, RDF.type, wdc.row]
49
+ k=0
50
+ row.each do |cell|
51
+ if cell != nil then
52
+ value = cell.cell_value
53
+ else
54
+ value = nil
55
+ end
56
+ if header[k] != nil then
57
+ # puts header[k]
58
+ # graph << [bnode, wdc[header[k].strip], value]
59
+ if value != nil then
60
+ graph << [bnode, wdc[header[k].strip], value ]
61
+ else
62
+ graph << [bnode, wdc[header[k].strip], ""]
63
+ end
64
+ end
65
+ k = k + 1
66
+ end
67
+ end
68
+ n = n + 1
69
+ end
70
+ end
71
+ graph
72
+ end
73
+
74
+ end
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xls_to_rdf
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - WiDu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-01-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: linkeddata
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: roo
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Converts xls file to RDF graph
42
+ email: wdulek@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/xls_to_rdf.rb
48
+ homepage: https://github.com/widu/xls_to_rdf
49
+ licenses:
50
+ - MIT
51
+ metadata: {}
52
+ post_install_message:
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubyforge_project:
68
+ rubygems_version: 2.6.7
69
+ signing_key:
70
+ specification_version: 4
71
+ summary: Converts xls file to RDF graph
72
+ test_files: []