rubyXL 2.3.2 → 2.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -6
- data/VERSION +1 -1
- data/lib/rubyXL/cell.rb +0 -10
- data/lib/rubyXL/objects/relationships.rb +46 -14
- data/lib/rubyXL/objects/sheet_data.rb +14 -2
- data/lib/rubyXL/parser.rb +1 -0
- data/lib/rubyXL/workbook.rb +7 -6
- data/rdoc/README_rdoc.html +27 -27
- data/rdoc/RubyXL/AExtensionStorageArea.html +1 -1
- data/rdoc/RubyXL/Alignment.html +1 -1
- data/rdoc/RubyXL/AlternateContent.html +1 -1
- data/rdoc/RubyXL/AutoFilter.html +1 -1
- data/rdoc/RubyXL/AutoFilterColumn.html +1 -1
- data/rdoc/RubyXL/BooleanNode.html +1 -1
- data/rdoc/RubyXL/BooleanValue.html +1 -1
- data/rdoc/RubyXL/Border.html +1 -1
- data/rdoc/RubyXL/BorderEdge.html +1 -1
- data/rdoc/RubyXL/Borders.html +1 -1
- data/rdoc/RubyXL/Break.html +1 -1
- data/rdoc/RubyXL/BreakList.html +1 -1
- data/rdoc/RubyXL/CalculationChain.html +2 -2
- data/rdoc/RubyXL/CalculationChainCell.html +1 -1
- data/rdoc/RubyXL/CalculationProperties.html +1 -1
- data/rdoc/RubyXL/Cell.html +78 -5
- data/rdoc/RubyXL/CellSmartTag.html +1 -1
- data/rdoc/RubyXL/CellSmartTagProperty.html +1 -1
- data/rdoc/RubyXL/CellSmartTags.html +1 -1
- data/rdoc/RubyXL/CellStyle.html +1 -1
- data/rdoc/RubyXL/CellStyleXFs.html +1 -1
- data/rdoc/RubyXL/CellStyles.html +1 -1
- data/rdoc/RubyXL/CellValue.html +1 -1
- data/rdoc/RubyXL/CellWatch.html +1 -1
- data/rdoc/RubyXL/CellWatches.html +1 -1
- data/rdoc/RubyXL/CellXFs.html +1 -1
- data/rdoc/RubyXL/Chartsheet.html +1 -1
- data/rdoc/RubyXL/ChartsheetPageSetup.html +1 -1
- data/rdoc/RubyXL/ChartsheetProperties.html +1 -1
- data/rdoc/RubyXL/ChartsheetProtection.html +1 -1
- data/rdoc/RubyXL/ChartsheetView.html +1 -1
- data/rdoc/RubyXL/ChartsheetViews.html +1 -1
- data/rdoc/RubyXL/Color.html +3 -3
- data/rdoc/RubyXL/ColorFilter.html +1 -1
- data/rdoc/RubyXL/ColorScale.html +1 -1
- data/rdoc/RubyXL/ColorScheme.html +1 -1
- data/rdoc/RubyXL/ColorSet.html +1 -1
- data/rdoc/RubyXL/Colors.html +1 -1
- data/rdoc/RubyXL/ColumnRange.html +1 -1
- data/rdoc/RubyXL/ColumnRanges.html +1 -1
- data/rdoc/RubyXL/ConditionalFormatValue.html +1 -1
- data/rdoc/RubyXL/ConditionalFormatting.html +1 -1
- data/rdoc/RubyXL/ConditionalFormattingRule.html +1 -1
- data/rdoc/RubyXL/CustomFilter.html +1 -1
- data/rdoc/RubyXL/CustomFilters.html +1 -1
- data/rdoc/RubyXL/CustomProperties.html +1 -1
- data/rdoc/RubyXL/CustomProperty.html +1 -1
- data/rdoc/RubyXL/CustomSheetView.html +1 -1
- data/rdoc/RubyXL/CustomSheetViews.html +1 -1
- data/rdoc/RubyXL/CustomWorkbookView.html +1 -1
- data/rdoc/RubyXL/CustomWorkbookViews.html +1 -1
- data/rdoc/RubyXL/DXF.html +1 -1
- data/rdoc/RubyXL/DXFs.html +1 -1
- data/rdoc/RubyXL/DataBar.html +1 -1
- data/rdoc/RubyXL/DataConsolidate.html +1 -1
- data/rdoc/RubyXL/DataConsolidationReference.html +1 -1
- data/rdoc/RubyXL/DataConsolidationReferences.html +1 -1
- data/rdoc/RubyXL/DataValidation.html +1 -1
- data/rdoc/RubyXL/DataValidations.html +1 -1
- data/rdoc/RubyXL/DateGroupItem.html +1 -1
- data/rdoc/RubyXL/DefinedName.html +1 -1
- data/rdoc/RubyXL/DefinedNames.html +1 -1
- data/rdoc/RubyXL/DocumentProperties.html +6 -6
- data/rdoc/RubyXL/DynamicFilter.html +1 -1
- data/rdoc/RubyXL/EmbeddedControl.html +1 -1
- data/rdoc/RubyXL/EmbeddedControls.html +1 -1
- data/rdoc/RubyXL/Extension.html +1 -1
- data/rdoc/RubyXL/ExtensionStorageArea.html +1 -1
- data/rdoc/RubyXL/ExternalReference.html +1 -1
- data/rdoc/RubyXL/ExternalReferences.html +1 -1
- data/rdoc/RubyXL/FieldItem.html +1 -1
- data/rdoc/RubyXL/FileRecoveryProperties.html +1 -1
- data/rdoc/RubyXL/FileSharing.html +1 -1
- data/rdoc/RubyXL/FileVersion.html +1 -1
- data/rdoc/RubyXL/Fill.html +1 -1
- data/rdoc/RubyXL/Fills.html +1 -1
- data/rdoc/RubyXL/FilterContainer.html +1 -1
- data/rdoc/RubyXL/FloatNode.html +1 -1
- data/rdoc/RubyXL/FloatValue.html +1 -1
- data/rdoc/RubyXL/Font.html +1 -1
- data/rdoc/RubyXL/FontScheme.html +1 -1
- data/rdoc/RubyXL/Fonts.html +1 -1
- data/rdoc/RubyXL/FormatScheme.html +1 -1
- data/rdoc/RubyXL/Formula.html +1 -1
- data/rdoc/RubyXL/FunctionGroup.html +1 -1
- data/rdoc/RubyXL/FunctionGroups.html +1 -1
- data/rdoc/RubyXL/GenericStorage.html +4 -4
- data/rdoc/RubyXL/GradientFill.html +1 -1
- data/rdoc/RubyXL/HeaderFooterSettings.html +1 -1
- data/rdoc/RubyXL/Hyperlink.html +1 -1
- data/rdoc/RubyXL/Hyperlinks.html +1 -1
- data/rdoc/RubyXL/IconFilter.html +1 -1
- data/rdoc/RubyXL/IconSet.html +1 -1
- data/rdoc/RubyXL/IgnoredError.html +1 -1
- data/rdoc/RubyXL/IgnoredErrors.html +1 -1
- data/rdoc/RubyXL/IndexedColors.html +1 -1
- data/rdoc/RubyXL/InputCells.html +1 -1
- data/rdoc/RubyXL/IntegerNode.html +1 -1
- data/rdoc/RubyXL/IntegerValue.html +1 -1
- data/rdoc/RubyXL/LegacyCell.html +57 -94
- data/rdoc/RubyXL/LegacyWorkbook.html +53 -38
- data/rdoc/RubyXL/LegacyWorksheet.html +29 -29
- data/rdoc/RubyXL/MRUColors.html +1 -1
- data/rdoc/RubyXL/MergedCell.html +1 -1
- data/rdoc/RubyXL/MergedCells.html +1 -1
- data/rdoc/RubyXL/NumFmt.html +1 -1
- data/rdoc/RubyXL/NumberFormat.html +2 -2
- data/rdoc/RubyXL/NumberFormats.html +1 -1
- data/rdoc/RubyXL/OLEObject.html +1 -1
- data/rdoc/RubyXL/OLEObjects.html +1 -1
- data/rdoc/RubyXL/OLESize.html +1 -1
- data/rdoc/RubyXL/OOXMLContainerObject.html +1 -1
- data/rdoc/RubyXL/OOXMLObject.html +1 -1
- data/rdoc/RubyXL/OOXMLObjectClassMethods.html +12 -12
- data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +1 -1
- data/rdoc/RubyXL/OOXMLRelationshipsFile.html +238 -0
- data/rdoc/RubyXL/OOXMLTopLevelObject.html +1 -1
- data/rdoc/RubyXL/OutlineProperties.html +1 -1
- data/rdoc/RubyXL/PageMargins.html +1 -1
- data/rdoc/RubyXL/PageSetup.html +1 -1
- data/rdoc/RubyXL/PageSetupProperties.html +1 -1
- data/rdoc/RubyXL/Pane.html +1 -1
- data/rdoc/RubyXL/Parser.html +16 -15
- data/rdoc/RubyXL/PatternFill.html +1 -1
- data/rdoc/RubyXL/PhoneticProperties.html +1 -1
- data/rdoc/RubyXL/PhoneticRun.html +1 -1
- data/rdoc/RubyXL/PivotArea.html +1 -1
- data/rdoc/RubyXL/PivotCache.html +1 -1
- data/rdoc/RubyXL/PivotCaches.html +1 -1
- data/rdoc/RubyXL/PivotReference.html +1 -1
- data/rdoc/RubyXL/PivotReferences.html +1 -1
- data/rdoc/RubyXL/PivotTableSelection.html +1 -1
- data/rdoc/RubyXL/PrintOptions.html +1 -1
- data/rdoc/RubyXL/ProtectedRange.html +1 -1
- data/rdoc/RubyXL/ProtectedRanges.html +1 -1
- data/rdoc/RubyXL/Protection.html +1 -1
- data/rdoc/RubyXL/RID.html +1 -1
- data/rdoc/RubyXL/RawOOXML.html +1 -1
- data/rdoc/RubyXL/Reference.html +5 -5
- data/rdoc/RubyXL/Relationship.html +1 -1
- data/rdoc/RubyXL/RichText.html +1 -1
- data/rdoc/RubyXL/RichTextRun.html +1 -1
- data/rdoc/RubyXL/RootRelationships.html +105 -0
- data/rdoc/RubyXL/Row.html +1 -1
- data/rdoc/RubyXL/RunProperties.html +1 -1
- data/rdoc/RubyXL/Scenario.html +1 -1
- data/rdoc/RubyXL/Scenarios.html +1 -1
- data/rdoc/RubyXL/Selection.html +1 -1
- data/rdoc/RubyXL/SharedStringsTable.html +2 -2
- data/rdoc/RubyXL/Sheet.html +1 -1
- data/rdoc/RubyXL/SheetCalculationProperties.html +1 -1
- data/rdoc/RubyXL/SheetData.html +1 -1
- data/rdoc/RubyXL/Sheets.html +1 -1
- data/rdoc/RubyXL/SmartTagProperties.html +1 -1
- data/rdoc/RubyXL/SmartTagType.html +1 -1
- data/rdoc/RubyXL/SmartTagTypes.html +1 -1
- data/rdoc/RubyXL/SmartTags.html +1 -1
- data/rdoc/RubyXL/SortCondition.html +1 -1
- data/rdoc/RubyXL/SortState.html +1 -1
- data/rdoc/RubyXL/Sqref.html +2 -2
- data/rdoc/RubyXL/Stop.html +1 -1
- data/rdoc/RubyXL/StringNode.html +1 -1
- data/rdoc/RubyXL/StringValue.html +1 -1
- data/rdoc/RubyXL/Stylesheet.html +1 -1
- data/rdoc/RubyXL/TableParts.html +1 -1
- data/rdoc/RubyXL/TableStyle.html +1 -1
- data/rdoc/RubyXL/TableStyles.html +1 -1
- data/rdoc/RubyXL/Text.html +2 -2
- data/rdoc/RubyXL/Theme.html +1 -1
- data/rdoc/RubyXL/ThemeElements.html +1 -1
- data/rdoc/RubyXL/Top10.html +1 -1
- data/rdoc/RubyXL/Variant.html +1 -1
- data/rdoc/RubyXL/Vector.html +1 -1
- data/rdoc/RubyXL/VectorValue.html +1 -1
- data/rdoc/RubyXL/WebPublishObject.html +1 -1
- data/rdoc/RubyXL/WebPublishObjects.html +1 -1
- data/rdoc/RubyXL/WebPublishingItem.html +1 -1
- data/rdoc/RubyXL/WebPublishingItems.html +1 -1
- data/rdoc/RubyXL/WebPublishingProperties.html +1 -1
- data/rdoc/RubyXL/Workbook.html +1 -1
- data/rdoc/RubyXL/WorkbookProperties.html +1 -1
- data/rdoc/RubyXL/WorkbookProtection.html +1 -1
- data/rdoc/RubyXL/WorkbookRelationships.html +2 -213
- data/rdoc/RubyXL/WorkbookView.html +1 -1
- data/rdoc/RubyXL/WorkbookViews.html +1 -1
- data/rdoc/RubyXL/Worksheet.html +1 -1
- data/rdoc/RubyXL/WorksheetDimensions.html +1 -1
- data/rdoc/RubyXL/WorksheetFormatProperties.html +1 -1
- data/rdoc/RubyXL/WorksheetProperties.html +1 -1
- data/rdoc/RubyXL/WorksheetProtection.html +1 -1
- data/rdoc/RubyXL/WorksheetView.html +1 -1
- data/rdoc/RubyXL/WorksheetViews.html +1 -1
- data/rdoc/RubyXL/Writer/ContentTypesWriter.html +53 -53
- data/rdoc/RubyXL/Writer/CoreWriter.html +12 -12
- data/rdoc/RubyXL/Writer/GenericWriter.html +5 -5
- data/rdoc/RubyXL/Writer/StylesWriter.html +2 -2
- data/rdoc/RubyXL/Writer/ThemeWriter.html +5 -5
- data/rdoc/RubyXL/Writer/WorkbookWriter.html +21 -21
- data/rdoc/RubyXL/Writer.html +1 -1
- data/rdoc/RubyXL/XF.html +1 -1
- data/rdoc/RubyXL.html +1 -1
- data/rdoc/created.rid +40 -41
- data/rdoc/index.html +4 -6
- data/rdoc/js/search_index.js +1 -1
- data/rdoc/table_of_contents.html +80 -93
- data/rubyXL.gemspec +5 -5
- metadata +4 -4
- data/lib/rubyXL/writer/root_rels_writer.rb +0 -17
- data/rdoc/RubyXL/Writer/RootRelsWriter.html +0 -193
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 393dc121135a64cb599f6e9fd210dc278313a77a
|
4
|
+
data.tar.gz: 11509287c9346cb333d9c7efd13d60e994291c03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2106ad0876f295480e0e56e58d055e3347ea51ddd2938db5c4570d893ef363c7daf4eea3c958fdb70de43857717d43531611afcf8af4fb6e9320f73cba63065
|
7
|
+
data.tar.gz: c9dd7a1dbf16e970fe97741b8aa099155e052d98fe67dd68ba4b3325c66d98f6afc50c17f15ca8083b347a32976b6a16f517d42bcd0b1cf5a3e00d7921de3ef3
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activesupport (4.0.
|
4
|
+
activesupport (4.0.3)
|
5
5
|
i18n (~> 0.6, >= 0.6.4)
|
6
6
|
minitest (~> 4.2)
|
7
7
|
multi_json (~> 1.3)
|
@@ -12,7 +12,7 @@ GEM
|
|
12
12
|
builder (3.2.2)
|
13
13
|
descendants_tracker (0.0.3)
|
14
14
|
diff-lcs (1.2.5)
|
15
|
-
docile (1.1.
|
15
|
+
docile (1.1.3)
|
16
16
|
faraday (0.9.0)
|
17
17
|
multipart-post (>= 1.2, < 3)
|
18
18
|
git (1.2.6)
|
@@ -41,7 +41,7 @@ GEM
|
|
41
41
|
multi_json (>= 1.5)
|
42
42
|
mini_portile (0.5.2)
|
43
43
|
minitest (4.7.5)
|
44
|
-
multi_json (1.8.
|
44
|
+
multi_json (1.8.4)
|
45
45
|
multi_xml (0.5.5)
|
46
46
|
multipart-post (2.0.0)
|
47
47
|
nokogiri (1.6.1)
|
@@ -61,15 +61,15 @@ GEM
|
|
61
61
|
rspec-expectations (~> 2.14.0)
|
62
62
|
rspec-mocks (~> 2.14.0)
|
63
63
|
rspec-core (2.14.7)
|
64
|
-
rspec-expectations (2.14.
|
64
|
+
rspec-expectations (2.14.5)
|
65
65
|
diff-lcs (>= 1.1.3, < 2.0)
|
66
|
-
rspec-mocks (2.14.
|
66
|
+
rspec-mocks (2.14.5)
|
67
67
|
rubyzip (1.1.0)
|
68
68
|
shoulda (3.5.0)
|
69
69
|
shoulda-context (~> 1.0, >= 1.0.1)
|
70
70
|
shoulda-matchers (>= 1.4.1, < 3.0)
|
71
71
|
shoulda-context (1.1.6)
|
72
|
-
shoulda-matchers (2.
|
72
|
+
shoulda-matchers (2.5.0)
|
73
73
|
activesupport (>= 3.0.0)
|
74
74
|
simplecov (0.8.2)
|
75
75
|
docile (~> 1.1.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.3.
|
1
|
+
2.3.3
|
data/lib/rubyXL/cell.rb
CHANGED
@@ -10,12 +10,6 @@ module RubyXL
|
|
10
10
|
@worksheet.workbook
|
11
11
|
end
|
12
12
|
|
13
|
-
def is_date?
|
14
|
-
return false unless raw_value =~ /^\d+$/ # Only fully numeric values can be dates
|
15
|
-
num_fmt = get_number_format
|
16
|
-
num_fmt && num_fmt.is_date_format?
|
17
|
-
end
|
18
|
-
|
19
13
|
# changes fill color of cell
|
20
14
|
def change_fill(rgb='ffffff')
|
21
15
|
validate_worksheet
|
@@ -292,10 +286,6 @@ module RubyXL
|
|
292
286
|
workbook.borders[get_cell_xf.border_id]
|
293
287
|
end
|
294
288
|
|
295
|
-
def get_number_format
|
296
|
-
workbook.stylesheet.get_number_format_by_id(get_cell_xf.num_fmt_id)
|
297
|
-
end
|
298
|
-
|
299
289
|
end
|
300
290
|
end
|
301
291
|
|
@@ -13,51 +13,83 @@ module RubyXL
|
|
13
13
|
define_element_name 'Relationship'
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
class WorkbookRelationships < OOXMLTopLevelObject
|
16
|
+
class OOXMLRelationshipsFile < OOXMLTopLevelObject
|
18
17
|
define_child_node(RubyXL::Relationship, :collection => true, :accessor => :relationships)
|
19
18
|
define_element_name 'Relationships'
|
20
19
|
set_namespaces('xmlns' => 'http://schemas.openxmlformats.org/package/2006/relationships')
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
def create_relationship(target, type)
|
21
|
+
def document_relationship(target, type)
|
25
22
|
RubyXL::Relationship.new(:id => "rId#{relationships.size + 1}",
|
26
23
|
:type => "http://schemas.openxmlformats.org/officeDocument/2006/relationships/#{type}",
|
27
24
|
:target => target)
|
28
25
|
end
|
26
|
+
protected :document_relationship
|
27
|
+
|
28
|
+
def metadata_relationship(target, type)
|
29
|
+
RubyXL::Relationship.new(:id => "rId#{relationships.size + 1}",
|
30
|
+
:type => "http://schemas.openxmlformats.org/package/2006/relationships/metadata/#{type}",
|
31
|
+
:target => target)
|
32
|
+
end
|
33
|
+
protected :metadata_relationship
|
34
|
+
|
35
|
+
def find_by_rid(r_id)
|
36
|
+
relationships.find { |r| r.id == r_id }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
class WorkbookRelationships < OOXMLRelationshipsFile
|
42
|
+
|
43
|
+
attr_accessor :workbook
|
29
44
|
|
30
45
|
def before_write_xml
|
31
46
|
self.relationships = []
|
32
47
|
|
33
48
|
@workbook.worksheets.each_with_index { |sheet, i|
|
34
|
-
relationships <<
|
49
|
+
relationships << document_relationship(sheet.filepath.gsub(/^xl\//, ''), sheet.rel_type)
|
35
50
|
}
|
36
51
|
|
37
52
|
@workbook.external_links.each_key { |k|
|
38
|
-
relationships <<
|
53
|
+
relationships << document_relationship("externalLinks/#{k}", 'externalLink')
|
39
54
|
}
|
40
55
|
|
41
|
-
relationships <<
|
42
|
-
relationships <<
|
56
|
+
relationships << document_relationship('theme/theme1.xml', 'theme')
|
57
|
+
relationships << document_relationship('styles.xml', 'styles')
|
43
58
|
|
44
59
|
if @workbook.shared_strings_container && !@workbook.shared_strings_container.strings.empty? then
|
45
|
-
relationships <<
|
60
|
+
relationships << document_relationship('sharedStrings.xml', 'sharedStrings')
|
46
61
|
end
|
47
62
|
|
48
63
|
if @workbook.calculation_chain && !@workbook.calculation_chain.cells.empty? then
|
49
|
-
relationships <<
|
64
|
+
relationships << document_relationship('calcChain.xml', 'calcChain')
|
50
65
|
end
|
51
66
|
|
52
67
|
true
|
53
68
|
end
|
54
69
|
|
55
|
-
def
|
56
|
-
|
70
|
+
def self.filepath
|
71
|
+
File.join('xl', '_rels', 'workbook.xml.rels')
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
class RootRelationships < OOXMLRelationshipsFile
|
77
|
+
|
78
|
+
attr_accessor :workbook
|
79
|
+
|
80
|
+
def before_write_xml
|
81
|
+
self.relationships = []
|
82
|
+
|
83
|
+
relationships << document_relationship('xl/workbook.xml', 'officeDocument')
|
84
|
+
relationships << metadata_relationship('docProps/core.xml', 'core-properties')
|
85
|
+
relationships << document_relationship('docProps/app.xml', 'extended-properties')
|
86
|
+
|
87
|
+
true
|
57
88
|
end
|
58
89
|
|
59
90
|
def self.filepath
|
60
|
-
File.join('
|
91
|
+
File.join('_rels', '.rels')
|
61
92
|
end
|
62
93
|
end
|
94
|
+
|
63
95
|
end
|
@@ -53,13 +53,25 @@ module RubyXL
|
|
53
53
|
value_container.value = v
|
54
54
|
end
|
55
55
|
|
56
|
+
def number_format
|
57
|
+
workbook.stylesheet.get_number_format_by_id(get_cell_xf.num_fmt_id)
|
58
|
+
end
|
59
|
+
|
60
|
+
def is_date?
|
61
|
+
return false unless raw_value =~ /^\d+(?:\.\d+)$/ # Only fully numeric values can be dates
|
62
|
+
num_fmt = self.number_format
|
63
|
+
num_fmt && num_fmt.is_date_format?
|
64
|
+
end
|
65
|
+
|
66
|
+
# Gets massaged value of the cell, converting datatypes to those known to Ruby (that includes
|
67
|
+
# stripping any special formatting from RichText).
|
56
68
|
def value(args = {})
|
57
69
|
return raw_value if args[:raw]
|
58
70
|
case datatype
|
59
71
|
when RubyXL::Cell::SHARED_STRING then
|
60
|
-
workbook.shared_strings_container[raw_value.to_i]
|
72
|
+
workbook.shared_strings_container[raw_value.to_i].to_s
|
61
73
|
else
|
62
|
-
if is_date? then workbook.num_to_date(raw_value.
|
74
|
+
if is_date? then workbook.num_to_date(raw_value.to_f)
|
63
75
|
elsif raw_value.is_a?(String) && (raw_value =~ /^-?\d+(\.\d+(?:e[+-]\d+)?)?$/i) # Numeric
|
64
76
|
if $1 then raw_value.to_f
|
65
77
|
else raw_value.to_i
|
data/lib/rubyXL/parser.rb
CHANGED
@@ -42,6 +42,7 @@ module RubyXL
|
|
42
42
|
wb.filepath = xl_file_path
|
43
43
|
|
44
44
|
wb.relationship_container = RubyXL::WorkbookRelationships.parse_file(dir_path)
|
45
|
+
wb.root_relationship_container = RubyXL::RootRelationships.parse_file(dir_path)
|
45
46
|
|
46
47
|
unless @data_only
|
47
48
|
wb.media.load_dir(dir_path)
|
data/lib/rubyXL/workbook.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'rubyXL/writer/generic_writer'
|
2
2
|
require 'rubyXL/writer/content_types_writer'
|
3
|
-
require 'rubyXL/writer/root_rels_writer'
|
4
3
|
require 'rubyXL/writer/core_writer'
|
5
4
|
require 'rubyXL/writer/theme_writer'
|
6
5
|
require 'rubyXL/writer/workbook_writer'
|
@@ -16,7 +15,7 @@ module RubyXL
|
|
16
15
|
:worksheet_rels, :chartsheet_rels, :printer_settings, :macros
|
17
16
|
|
18
17
|
attr_accessor :stylesheet, :shared_strings_container, :document_properties, :calculation_chain,
|
19
|
-
:relationship_container
|
18
|
+
:relationship_container, :root_relationship_container
|
20
19
|
|
21
20
|
SHEET_NAME_TEMPLATE = 'Sheet%d'
|
22
21
|
APPLICATION = 'Microsoft Macintosh Excel'
|
@@ -53,6 +52,7 @@ module RubyXL
|
|
53
52
|
@stylesheet = RubyXL::Stylesheet.default
|
54
53
|
@document_properties = RubyXL::DocumentProperties.new
|
55
54
|
@relationship_container = RubyXL::WorkbookRelationships.new
|
55
|
+
@root_relationship_container = RubyXL::RootRelationships.new
|
56
56
|
@calculation_chain = nil
|
57
57
|
|
58
58
|
self.company = company
|
@@ -109,7 +109,7 @@ module RubyXL
|
|
109
109
|
zippath = File.join(temppath, 'file.zip')
|
110
110
|
|
111
111
|
::Zip::File.open(zippath, ::Zip::File::CREATE) { |zipfile|
|
112
|
-
[ Writer::ContentTypesWriter, Writer::
|
112
|
+
[ Writer::ContentTypesWriter, Writer::CoreWriter,
|
113
113
|
Writer::ThemeWriter, Writer::WorkbookWriter, Writer::StylesWriter
|
114
114
|
].each { |writer_class| writer_class.new(self).add_to_zip(zipfile) }
|
115
115
|
|
@@ -118,6 +118,7 @@ module RubyXL
|
|
118
118
|
document_properties.add_to_zip(zipfile)
|
119
119
|
relationship_container.workbook = self
|
120
120
|
relationship_container.add_to_zip(zipfile)
|
121
|
+
root_relationship_container.add_to_zip(zipfile)
|
121
122
|
|
122
123
|
[ @media, @external_links, @external_links_rels,
|
123
124
|
@drawings, @drawings_rels, @charts, @chart_rels,
|
@@ -134,16 +135,16 @@ module RubyXL
|
|
134
135
|
|
135
136
|
def base_date
|
136
137
|
if date1904 then
|
137
|
-
|
138
|
+
DateTime.new(1904, 1, 1)
|
138
139
|
else
|
139
140
|
# Subtracting one day to accomodate for erroneous 1900 leap year compatibility only for 1900 based dates
|
140
|
-
|
141
|
+
DateTime.new(1899, 12, 31) - 1
|
141
142
|
end
|
142
143
|
end
|
143
144
|
private :base_date
|
144
145
|
|
145
146
|
def date_to_num(date)
|
146
|
-
date && (date.ajd - base_date().ajd).
|
147
|
+
date && (date.ajd - base_date().ajd).to_f
|
147
148
|
end
|
148
149
|
|
149
150
|
def num_to_date(num)
|
data/rdoc/README_rdoc.html
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
<head>
|
5
5
|
<meta charset="UTF-8">
|
6
6
|
|
7
|
-
<title>README - rubyXL 2.3.
|
7
|
+
<title>README - rubyXL 2.3.3</title>
|
8
8
|
|
9
9
|
<link href="./fonts.css" rel="stylesheet">
|
10
10
|
<link href="./rdoc.css" rel="stylesheet">
|
@@ -124,7 +124,7 @@
|
|
124
124
|
|
125
125
|
<h2 id="label-To+Use%3A">To Use:<span><a href="#label-To+Use%3A">¶</a> <a href="#documentation">↑</a></span></h2>
|
126
126
|
|
127
|
-
<pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string"
|
127
|
+
<pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'rubyXL'</span> <span class="ruby-comment"># Assuming rubygems is already required</span>
|
128
128
|
</pre>
|
129
129
|
|
130
130
|
<h3 id="label-Parsing+an+existing+workbook">Parsing an existing workbook<span><a href="#label-Parsing+an+existing+workbook">¶</a> <a href="#documentation">↑</a></span></h3>
|
@@ -141,7 +141,7 @@
|
|
141
141
|
|
142
142
|
<pre>workbook.worksheets[0] # Returns first worksheet
|
143
143
|
workbook[0] # Returns first worksheet
|
144
|
-
workbook[
|
144
|
+
workbook['Sheet1'] # Finds and returns worksheet titled "Sheet1"</pre>
|
145
145
|
|
146
146
|
<h4 id="label-Accessing+just+the+values">Accessing just the values<span><a href="#label-Accessing+just+the+values">¶</a> <a href="#documentation">↑</a></span></h4>
|
147
147
|
|
@@ -225,12 +225,12 @@ worksheet.get_column_border_right(0)</pre>
|
|
225
225
|
|
226
226
|
<h4 id="label-Adding+Worksheets">Adding Worksheets<span><a href="#label-Adding+Worksheets">¶</a> <a href="#documentation">↑</a></span></h4>
|
227
227
|
|
228
|
-
<pre>worlsheet = workbook.add_worksheet(
|
228
|
+
<pre>worlsheet = workbook.add_worksheet('Sheet2')</pre>
|
229
229
|
|
230
230
|
<h4 id="label-Adding+Cells">Adding Cells<span><a href="#label-Adding+Cells">¶</a> <a href="#documentation">↑</a></span></h4>
|
231
231
|
|
232
|
-
<pre>worksheet.add_cell(0, 0,
|
233
|
-
worksheet.add_cell(0, 1,
|
232
|
+
<pre>worksheet.add_cell(0, 0, 'A1') # Sets cell A1 to string "A1"
|
233
|
+
worksheet.add_cell(0, 1, '', 'A1') # Sets formula in the cell B1 to '=A1'</pre>
|
234
234
|
|
235
235
|
<h4 id="label-Changing+Cells">Changing Cells<span><a href="#label-Changing+Cells">¶</a> <a href="#documentation">↑</a></span></h4>
|
236
236
|
|
@@ -240,21 +240,21 @@ worksheet.add_cell(0, 1, '', 'A1') # Sets formula in the cell B1 to '=A1'</pre>
|
|
240
240
|
|
241
241
|
<pre>worksheet.sheet_data[0][0].change_font_bold(true) # Makes A1 bold
|
242
242
|
worksheet.change_row_italics(0,true) # Makes first row italicized
|
243
|
-
worksheet.change_column_font_name(0,
|
243
|
+
worksheet.change_column_font_name(0, 'Courier') # Makes first column have font Courier</pre>
|
244
244
|
|
245
245
|
<h4 id="label-Changing+Fills+++++">Changing Fills <span><a href="#label-Changing+Fills+++++">¶</a> <a href="#documentation">↑</a></span></h4>
|
246
246
|
|
247
|
-
<pre>worksheet.sheet_data[0][0].change_fill(
|
248
|
-
worksheet.change_row_fill(0,
|
249
|
-
worksheet.change_column_fill(0,
|
247
|
+
<pre>worksheet.sheet_data[0][0].change_fill('0ba53d') # Sets A1 to have fill #0ba53d
|
248
|
+
worksheet.change_row_fill(0, '0ba53d') # Sets first row to have fill #0ba53d
|
249
|
+
worksheet.change_column_fill(0, '0ba53d') # Sets first column to have fill #0ba53d</pre>
|
250
250
|
|
251
251
|
<h4 id="label-Changing+Borders">Changing Borders<span><a href="#label-Changing+Borders">¶</a> <a href="#documentation">↑</a></span></h4>
|
252
252
|
|
253
253
|
<pre># Possible weights: hairline, thin, medium, thick
|
254
254
|
# Possible "directions": top, bottom, left, right, diagonal
|
255
|
-
worksheet.sheet_data[0][0].change_border_top(
|
256
|
-
worksheet.change_row_border_left(0,
|
257
|
-
worksheet.change_column_border_diagonal(0,
|
255
|
+
worksheet.sheet_data[0][0].change_border_top('thin') # Sets A1 to have a top, thin border
|
256
|
+
worksheet.change_row_border_left(0, 'hairline') # Sets first row to have a left, hairline border
|
257
|
+
worksheet.change_column_border_diagonal(0, 'medium') # Sets first column to have diagonal, medium border</pre>
|
258
258
|
|
259
259
|
<h4 id="label-Changing+Alignment">Changing Alignment<span><a href="#label-Changing+Alignment">¶</a> <a href="#documentation">↑</a></span></h4>
|
260
260
|
|
@@ -262,17 +262,17 @@ worksheet.change_column_border_diagonal(0, 'medium') # Sets first column to have
|
|
262
262
|
|
263
263
|
<p>center, distributed, justify, left, right</p>
|
264
264
|
|
265
|
-
<pre>worksheet.sheet_data[0][0].change_horizontal_alignment(
|
266
|
-
worksheet.change_row_horizontal_alignment(0,
|
267
|
-
worksheet.change_column_horizontal_alignment(0,
|
265
|
+
<pre>worksheet.sheet_data[0][0].change_horizontal_alignment('center') # Sets A1 to be centered
|
266
|
+
worksheet.change_row_horizontal_alignment(0, 'justify') # Sets first row to be justified
|
267
|
+
worksheet.change_column_horizontal_alignment(0, 'right') # Sets first column to be right-aligned</pre>
|
268
268
|
|
269
269
|
<h5 id="label-Vertical">Vertical<span><a href="#label-Vertical">¶</a> <a href="#documentation">↑</a></span></h5>
|
270
270
|
|
271
271
|
<p>bottom, center, distributed, top</p>
|
272
272
|
|
273
|
-
<pre>worksheet.sheet_data[0][0].change_vertical_alignment(
|
274
|
-
worksheet.change_row_vertical_alignment(0,
|
275
|
-
worksheet.change_column_vertical_alignment(0,
|
273
|
+
<pre>worksheet.sheet_data[0][0].change_vertical_alignment('bottom') # Sets A1 to be bottom aligned
|
274
|
+
worksheet.change_row_vertical_alignment(0, 'distributed') # Sets first row to be distributed vertically
|
275
|
+
worksheet.change_column_vertical_alignment(0, 'top') # Sets first column to be top aligned</pre>
|
276
276
|
|
277
277
|
<h4 id="label-Changing+Row+Height">Changing Row Height<span><a href="#label-Changing+Row+Height">¶</a> <a href="#documentation">↑</a></span></h4>
|
278
278
|
|
@@ -359,8 +359,8 @@ worksheet.delete_cell(0, 0) # Deletes A1, does not shift cells</pre>
|
|
359
359
|
|
360
360
|
<h3 id="label-Miscellaneous">Miscellaneous<span><a href="#label-Miscellaneous">¶</a> <a href="#documentation">↑</a></span></h3>
|
361
361
|
|
362
|
-
<pre>Reference.ind2ref(0,0) ==
|
363
|
-
Reference.ref2ind(
|
362
|
+
<pre>Reference.ind2ref(0,0) == 'A1' # Converts row and column index to Excel-style cell reference
|
363
|
+
Reference.ref2ind('A1') == [0, 0] # Converts Excel-style cell reference to row and column index</pre>
|
364
364
|
|
365
365
|
<h2 id="label-For+more+information">For more information<span><a href="#label-For+more+information">¶</a> <a href="#documentation">↑</a></span></h2>
|
366
366
|
|
@@ -368,11 +368,11 @@ Reference.ref2ind('A1') == [0, 0] # Converts Excel-style cell reference to row a
|
|
368
368
|
|
369
369
|
<h2 id="label-Contributing+to+rubyXL">Contributing to rubyXL<span><a href="#label-Contributing+to+rubyXL">¶</a> <a href="#documentation">↑</a></span></h2>
|
370
370
|
<ul><li>
|
371
|
-
<p>Check out the latest master to make sure the feature hasn
|
372
|
-
implemented or the bug hasn
|
371
|
+
<p>Check out the latest master to make sure the feature hasn't been
|
372
|
+
implemented or the bug hasn't been fixed yet</p>
|
373
373
|
</li><li>
|
374
|
-
<p>Check out the issue tracker to make sure someone already hasn
|
375
|
-
it and/or contributed it</p>
|
374
|
+
<p>Check out the issue tracker to make sure someone already hasn't
|
375
|
+
requested it and/or contributed it</p>
|
376
376
|
</li><li>
|
377
377
|
<p>Fork the project</p>
|
378
378
|
</li><li>
|
@@ -380,8 +380,8 @@ it and/or contributed it</p>
|
|
380
380
|
</li><li>
|
381
381
|
<p>Commit and push until you are happy with your contribution</p>
|
382
382
|
</li><li>
|
383
|
-
<p>Make sure to add tests for it. This is important so I don
|
384
|
-
future version unintentionally.</p>
|
383
|
+
<p>Make sure to add tests for it. This is important so I don't break it in
|
384
|
+
a future version unintentionally.</p>
|
385
385
|
</li><li>
|
386
386
|
<p>Please try not to mess with the Rakefile, version, or history. If you want
|
387
387
|
to have your own version, or is otherwise necessary, that is fine, but
|
data/rdoc/RubyXL/Alignment.html
CHANGED
data/rdoc/RubyXL/AutoFilter.html
CHANGED
data/rdoc/RubyXL/Border.html
CHANGED
data/rdoc/RubyXL/BorderEdge.html
CHANGED
data/rdoc/RubyXL/Borders.html
CHANGED
data/rdoc/RubyXL/Break.html
CHANGED
data/rdoc/RubyXL/BreakList.html
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
<head>
|
5
5
|
<meta charset="UTF-8">
|
6
6
|
|
7
|
-
<title>class RubyXL::CalculationChain - rubyXL 2.3.
|
7
|
+
<title>class RubyXL::CalculationChain - rubyXL 2.3.3</title>
|
8
8
|
|
9
9
|
<link href="../fonts.css" rel="stylesheet">
|
10
10
|
<link href="../rdoc.css" rel="stylesheet">
|
@@ -133,7 +133,7 @@ href="http://www.schemacentral.com/sc/ooxml/e-ssml_calcChain.html">www.schemacen
|
|
133
133
|
<div class="method-source-code" id="filepath-source">
|
134
134
|
<pre><span class="ruby-comment"># File lib/rubyXL/objects/calculation_chain.rb, line 24</span>
|
135
135
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">filepath</span>
|
136
|
-
<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string"
|
136
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">'xl'</span>, <span class="ruby-string">'calcChain.xml'</span>)
|
137
137
|
<span class="ruby-keyword">end</span></pre>
|
138
138
|
</div>
|
139
139
|
|