aboutsummaryrefslogtreecommitdiffstats
path: root/lib/roo/formatters/xml.rb
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2017-06-12 03:37:11 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2017-06-12 03:37:11 -0400
commit8280a21a23d44aa90177e2bc041d0b8dc8556f4b (patch)
treedadef7ee085c0e990a5070bd41b6a5b98c97f4fd /lib/roo/formatters/xml.rb
Import Upstream version 2.7.1upstream/2.7.1
Diffstat (limited to 'lib/roo/formatters/xml.rb')
-rw-r--r--lib/roo/formatters/xml.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/roo/formatters/xml.rb b/lib/roo/formatters/xml.rb
new file mode 100644
index 0000000..ebb8cde
--- /dev/null
+++ b/lib/roo/formatters/xml.rb
@@ -0,0 +1,31 @@
+# returns an XML representation of all sheets of a spreadsheet file
+module Roo
+ module Formatters
+ module XML
+ def to_xml
+ Nokogiri::XML::Builder.new do |xml|
+ xml.spreadsheet do
+ sheets.each do |sheet|
+ self.default_sheet = sheet
+ xml.sheet(name: sheet) do |x|
+ if first_row && last_row && first_column && last_column
+ # sonst gibt es Fehler bei leeren Blaettern
+ first_row.upto(last_row) do |row|
+ first_column.upto(last_column) do |col|
+ next if empty?(row, col)
+
+ x.cell(cell(row, col),
+ row: row,
+ column: col,
+ type: celltype(row, col))
+ end
+ end
+ end
+ end
+ end
+ end
+ end.to_xml
+ end
+ end
+ end
+end