axlsx 1.1.3 → 1.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.
Files changed (187) hide show
  1. data/.yardopts +5 -2
  2. data/CHANGELOG.md +60 -0
  3. data/LICENSE +1 -1
  4. data/README.md +115 -415
  5. data/Rakefile +11 -3
  6. data/examples/basic_charts.rb +54 -0
  7. data/examples/chart_colors.rb +88 -0
  8. data/examples/data_validation.rb +50 -0
  9. data/examples/example.rb +299 -155
  10. data/examples/example.xlsx +0 -0
  11. data/examples/example_streamed.xlsx +0 -0
  12. data/examples/extractive.pdf +0 -0
  13. data/examples/extractive.rb +45 -0
  14. data/examples/no-use_autowidth.xlsx +0 -0
  15. data/examples/scraping_html.rb +91 -0
  16. data/examples/shared_strings_example.xlsx +0 -0
  17. data/examples/sheet_protection.rb +10 -0
  18. data/examples/sheet_view.rb +34 -0
  19. data/examples/two_cell_anchor_image.rb +11 -0
  20. data/lib/axlsx/content_type/content_type.rb +2 -0
  21. data/lib/axlsx/content_type/default.rb +30 -15
  22. data/lib/axlsx/content_type/override.rb +29 -14
  23. data/lib/axlsx/doc_props/app.rb +161 -104
  24. data/lib/axlsx/doc_props/core.rb +9 -5
  25. data/lib/axlsx/drawing/ax_data_source.rb +26 -0
  26. data/lib/axlsx/drawing/axis.rb +92 -37
  27. data/lib/axlsx/drawing/bar_3D_chart.rb +49 -45
  28. data/lib/axlsx/drawing/bar_series.rb +25 -7
  29. data/lib/axlsx/drawing/cat_axis.rb +50 -22
  30. data/lib/axlsx/drawing/chart.rb +69 -56
  31. data/lib/axlsx/drawing/d_lbls.rb +100 -0
  32. data/lib/axlsx/drawing/drawing.rb +28 -12
  33. data/lib/axlsx/drawing/graphic_frame.rb +2 -1
  34. data/lib/axlsx/drawing/line_3D_chart.rb +3 -10
  35. data/lib/axlsx/drawing/line_series.rb +20 -4
  36. data/lib/axlsx/drawing/num_data.rb +52 -0
  37. data/lib/axlsx/drawing/num_data_source.rb +61 -0
  38. data/lib/axlsx/drawing/num_val.rb +32 -0
  39. data/lib/axlsx/drawing/pic.rb +44 -4
  40. data/lib/axlsx/drawing/pie_3D_chart.rb +10 -7
  41. data/lib/axlsx/drawing/pie_series.rb +18 -4
  42. data/lib/axlsx/drawing/scatter_chart.rb +2 -8
  43. data/lib/axlsx/drawing/scatter_series.rb +28 -2
  44. data/lib/axlsx/drawing/ser_axis.rb +1 -1
  45. data/lib/axlsx/drawing/series.rb +1 -1
  46. data/lib/axlsx/drawing/str_data.rb +42 -0
  47. data/lib/axlsx/drawing/str_val.rb +33 -0
  48. data/lib/axlsx/drawing/title.rb +21 -9
  49. data/lib/axlsx/drawing/two_cell_anchor.rb +46 -9
  50. data/lib/axlsx/drawing/view_3D.rb +44 -31
  51. data/lib/axlsx/drawing/vml_drawing.rb +42 -0
  52. data/lib/axlsx/drawing/vml_shape.rb +125 -0
  53. data/lib/axlsx/package.rb +44 -16
  54. data/lib/axlsx/rels/relationship.rb +3 -3
  55. data/lib/axlsx/rels/relationships.rb +1 -11
  56. data/lib/axlsx/stylesheet/gradient_fill.rb +1 -1
  57. data/lib/axlsx/stylesheet/styles.rb +1 -1
  58. data/lib/axlsx/stylesheet/table_style.rb +3 -3
  59. data/lib/axlsx/util/constants.rb +28 -0
  60. data/lib/axlsx/util/simple_typed_list.rb +15 -21
  61. data/lib/axlsx/util/validators.rb +81 -8
  62. data/lib/axlsx/version.rb +2 -7
  63. data/lib/axlsx/workbook/defined_name.rb +174 -0
  64. data/lib/axlsx/workbook/defined_names.rb +21 -0
  65. data/lib/axlsx/workbook/workbook.rb +65 -13
  66. data/lib/axlsx/workbook/worksheet/auto_filter.rb +34 -0
  67. data/lib/axlsx/workbook/worksheet/cell.rb +35 -7
  68. data/lib/axlsx/workbook/worksheet/col.rb +17 -1
  69. data/lib/axlsx/workbook/worksheet/cols.rb +20 -0
  70. data/lib/axlsx/workbook/worksheet/comment.rb +101 -0
  71. data/lib/axlsx/workbook/worksheet/comments.rb +85 -0
  72. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
  73. data/lib/axlsx/workbook/worksheet/data_bar.rb +1 -1
  74. data/lib/axlsx/workbook/worksheet/data_validation.rb +245 -0
  75. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -0
  76. data/lib/axlsx/workbook/worksheet/dimension.rb +65 -0
  77. data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
  78. data/lib/axlsx/workbook/worksheet/page_setup.rb +113 -0
  79. data/lib/axlsx/workbook/worksheet/pane.rb +144 -0
  80. data/lib/axlsx/workbook/worksheet/print_options.rb +63 -0
  81. data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -0
  82. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
  83. data/lib/axlsx/workbook/worksheet/row.rb +67 -12
  84. data/lib/axlsx/workbook/worksheet/selection.rb +111 -0
  85. data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
  86. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +24 -0
  87. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +224 -0
  88. data/lib/axlsx/workbook/worksheet/sheet_view.rb +379 -0
  89. data/lib/axlsx/workbook/worksheet/table.rb +3 -3
  90. data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
  91. data/lib/axlsx/workbook/worksheet/worksheet.rb +377 -255
  92. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +57 -0
  93. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +64 -0
  94. data/lib/axlsx.rb +30 -15
  95. data/test/content_type/tc_content_type.rb +1 -6
  96. data/test/doc_props/tc_app.rb +31 -1
  97. data/test/doc_props/tc_core.rb +3 -1
  98. data/test/drawing/tc_axis.rb +38 -3
  99. data/test/drawing/tc_bar_3D_chart.rb +12 -12
  100. data/test/drawing/tc_bar_series.rb +17 -13
  101. data/test/drawing/tc_cat_axis.rb +3 -3
  102. data/test/drawing/tc_cat_axis_data.rb +23 -13
  103. data/test/drawing/tc_chart.rb +29 -11
  104. data/test/drawing/tc_d_lbls.rb +47 -0
  105. data/test/drawing/tc_data_source.rb +17 -0
  106. data/test/drawing/tc_drawing.rb +11 -5
  107. data/test/drawing/tc_hyperlink.rb +4 -5
  108. data/test/drawing/tc_line_series.rb +9 -11
  109. data/test/drawing/tc_named_axis_data.rb +27 -0
  110. data/test/drawing/tc_num_data.rb +31 -0
  111. data/test/drawing/tc_num_val.rb +29 -0
  112. data/test/drawing/tc_pic.rb +22 -2
  113. data/test/drawing/tc_pie_3D_chart.rb +4 -8
  114. data/test/drawing/tc_pie_series.rb +11 -13
  115. data/test/drawing/tc_scatter_chart.rb +6 -1
  116. data/test/drawing/tc_scatter_series.rb +6 -5
  117. data/test/drawing/tc_series.rb +1 -1
  118. data/test/drawing/tc_str_data.rb +18 -0
  119. data/test/drawing/tc_str_val.rb +21 -0
  120. data/test/drawing/tc_title.rb +16 -0
  121. data/test/drawing/tc_two_cell_anchor.rb +2 -3
  122. data/test/drawing/tc_view_3D.rb +18 -18
  123. data/test/drawing/tc_vml_drawing.rb +25 -0
  124. data/test/drawing/tc_vml_shape.rb +100 -0
  125. data/test/rels/tc_relationship.rb +1 -0
  126. data/test/stylesheet/tc_gradient_fill.rb +8 -0
  127. data/test/stylesheet/tc_pattern_fill.rb +7 -1
  128. data/test/stylesheet/tc_styles.rb +3 -4
  129. data/test/stylesheet/tc_table_style.rb +8 -0
  130. data/test/stylesheet/tc_table_style_element.rb +10 -1
  131. data/test/tc_helper.rb +1 -0
  132. data/test/tc_package.rb +93 -17
  133. data/test/util/tc_simple_typed_list.rb +13 -0
  134. data/test/util/tc_validators.rb +95 -9
  135. data/test/workbook/tc_defined_name.rb +41 -0
  136. data/test/workbook/tc_workbook.rb +5 -3
  137. data/test/workbook/worksheet/table/tc_table.rb +3 -11
  138. data/test/workbook/worksheet/tc_cell.rb +30 -6
  139. data/test/workbook/worksheet/tc_col.rb +9 -0
  140. data/test/workbook/worksheet/tc_comment.rb +57 -0
  141. data/test/workbook/worksheet/tc_comments.rb +57 -0
  142. data/test/workbook/worksheet/tc_conditional_formatting.rb +44 -0
  143. data/test/workbook/worksheet/tc_data_bar.rb +1 -1
  144. data/test/workbook/worksheet/tc_data_validation.rb +265 -0
  145. data/test/workbook/worksheet/tc_page_setup.rb +138 -0
  146. data/test/workbook/worksheet/tc_pane.rb +94 -0
  147. data/test/workbook/worksheet/tc_print_options.rb +72 -0
  148. data/test/workbook/worksheet/tc_protected_range.rb +17 -0
  149. data/test/workbook/worksheet/tc_row.rb +36 -12
  150. data/test/workbook/worksheet/tc_selection.rb +94 -0
  151. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -0
  152. data/test/workbook/worksheet/tc_sheet_view.rb +214 -0
  153. data/test/workbook/worksheet/tc_worksheet.rb +138 -48
  154. metadata +164 -52
  155. data/examples/example.csv +0 -1000
  156. data/lib/axlsx/drawing/cat_axis_data.rb +0 -34
  157. data/lib/axlsx/drawing/hlink_click.rb~ +0 -0
  158. data/lib/axlsx/drawing/hyperlink.rb~ +0 -64
  159. data/lib/axlsx/drawing/named_axis_data.rb +0 -36
  160. data/lib/axlsx/drawing/picture_locking.rb~ +0 -36
  161. data/lib/axlsx/drawing/val_axis_data.rb +0 -27
  162. data/lib/axlsx/util/cbf.rb +0 -333
  163. data/lib/axlsx/util/cfb.rb~ +0 -201
  164. data/lib/axlsx/util/font_tables.rb~ +0 -0
  165. data/lib/axlsx/util/ms_off_crypto.rb +0 -189
  166. data/lib/axlsx/util/ms_off_crypto.rb~ +0 -3
  167. data/lib/axlsx/util/ms_offcrypto.rb~ +0 -0
  168. data/lib/axlsx/util/parser.rb~ +0 -6
  169. data/lib/axlsx/util/storage.rb~ +0 -0
  170. data/lib/axlsx/workbook/shared_strings_table.rb~ +0 -69
  171. data/lib/axlsx/workbook/worksheet/cfvo.rb~ +0 -0
  172. data/lib/axlsx/workbook/worksheet/col.rb~ +0 -0
  173. data/lib/axlsx/workbook/worksheet/color_scale.rb~ +0 -46
  174. data/lib/axlsx/workbook/worksheet/data_bar.rb~ +0 -0
  175. data/lib/axlsx/workbook/worksheet/icon_set.rb~ +0 -95
  176. data/lib/axlsx/workbook/worksheet/shared_strings_table.rb~ +0 -0
  177. data/lib/axlsx/workbook/worksheet/table.rb~ +0 -97
  178. data/lib/schema/dc.xsd~ +0 -118
  179. data/lib/schema/dcterms.xsd~ +0 -331
  180. data/lib/schema/opc-coreProperties.xsd~ +0 -50
  181. data/test/drawing/tc_val_axis_data.rb +0 -17
  182. data/test/workbook/worksheet/table/tc_table.rb~ +0 -72
  183. data/test/workbook/worksheet/tc_cfvo.rb~ +0 -20
  184. data/test/workbook/worksheet/tc_col.rb~ +0 -10
  185. data/test/workbook/worksheet/tc_color_scale.rb~ +0 -0
  186. data/test/workbook/worksheet/tc_data_bar.rb~ +0 -0
  187. data/test/workbook/worksheet/tc_icon_set.rb~ +0 -0
@@ -1,97 +0,0 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # Table
4
- # @note Worksheet#add_table is the recommended way to create charts for your worksheets.
5
- # @see README for examples
6
- class Table
7
-
8
-
9
- # The reference to the table data
10
- # @return [String]
11
- attr_reader :ref
12
-
13
- # The name of the table.
14
- # @return [String]
15
- attr_reader :name
16
-
17
- # The style for the table.
18
- # @return [TableStyle]
19
- attr_reader :style
20
-
21
- # Creates a new Table object
22
- # @param [String] ref The reference to the table data.
23
- # @param [Sheet] ref The sheet containing the table data.
24
- # @option options [Cell, String] name
25
- # @option options [TableStyle] style
26
- def initialize(ref, sheet, options={})
27
- @ref = ref
28
- @sheet = sheet
29
- @style = nil
30
- @sheet.workbook.tables << self
31
- @name = "Table#{index+1}"
32
- options.each do |o|
33
- self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
34
- end
35
- yield self if block_given?
36
- end
37
-
38
- # The index of this chart in the workbooks charts collection
39
- # @return [Integer]
40
- def index
41
- @sheet.workbook.tables.index(self)
42
- end
43
-
44
- # The part name for this table
45
- # @return [String]
46
- def pn
47
- "#{TABLE_PN % (index+1)}"
48
- end
49
-
50
- # The relation reference id for this table
51
- # @return [String]
52
- def rId
53
- "rId#{index+1}"
54
- end
55
-
56
- # The name of the Table.
57
- # @param [String, Cell] v
58
- # @return [Title]
59
- def name=(v)
60
- DataTypeValidator.validate "#{self.class}.name", [String], v
61
- if v.is_a?(String)
62
- @name = v
63
- end
64
- end
65
-
66
-
67
- # The style for the table.
68
- # TODO
69
- # def style=(v) DataTypeValidator.validate "Chart.style", Integer, v, lambda { |arg| arg >= 1 && arg <= 48 }; @style = v; end
70
-
71
- # Table Serialization
72
- # serializes the table
73
- def to_xml
74
- builder = Nokogiri::XML::Builder.new(:encoding => ENCODING) do |xml|
75
- xml.table(:xmlns => XML_NS, :id => index+1, :name => @name, :displayName => @name.gsub(/\s/,'_'), :ref => @ref, :totalsRowShown => 0) {
76
- xml.autoFilter :ref=>@ref
77
- xml.tableColumns(:count => header_cells.length) {
78
- header_cells.each_with_index do |cell,index|
79
- xml.tableColumn :id => index+1, :name => cell.value
80
- end
81
- }
82
- xml.tableStyleInfo :showFirstColumn=>"0", :showLastColumn=>"0", :showRowStripes=>"1", :showColumnStripes=>"0", :name=>"TableStyleMedium9"
83
- #TODO implement tableStyleInfo
84
- }
85
- end
86
- builder.to_xml(:save_with => 0)
87
- end
88
-
89
- private
90
-
91
- # get the header cells (hackish)
92
- def header_cells
93
- header = @ref.gsub(/^(\w+)(\d+)\:(\w+)\d+$/, '\1\2:\3\2')
94
- @sheet[header]
95
- end
96
- end
97
- end
data/lib/schema/dc.xsd~ DELETED
@@ -1,118 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
- xmlns="http://purl.org/dc/elements/1.1/"
4
- targetNamespace="http://purl.org/dc/elements/1.1/"
5
- elementFormDefault="qualified"
6
- attributeFormDefault="unqualified">
7
-
8
- <xs:annotation>
9
- <xs:documentation xml:lang="en">
10
- DCMES 1.1 XML Schema
11
- XML Schema for http://purl.org/dc/elements/1.1/ namespace
12
-
13
- Created 2003-04-02
14
-
15
- Created by
16
-
17
- Tim Cole (t-cole3@uiuc.edu)
18
- Tom Habing (thabing@uiuc.edu)
19
- Jane Hunter (jane@dstc.edu.au)
20
- Pete Johnston (p.johnston@ukoln.ac.uk),
21
- Carl Lagoze (lagoze@cs.cornell.edu)
22
-
23
- This schema declares XML elements for the 15 DC elements from the
24
- http://purl.org/dc/elements/1.1/ namespace.
25
-
26
- It defines a complexType SimpleLiteral which permits mixed content
27
- and makes the xml:lang attribute available. It disallows child elements by
28
- use of minOcccurs/maxOccurs.
29
-
30
- However, this complexType does permit the derivation of other complexTypes
31
- which would permit child elements.
32
-
33
- All elements are declared as substitutable for the abstract element any,
34
- which means that the default type for all elements is dc:SimpleLiteral.
35
-
36
- </xs:documentation>
37
-
38
- </xs:annotation>
39
-
40
-
41
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
42
- schemaLocation="http://www.w3.org/2001/03/xml.xsd">
43
- </xs:import>
44
-
45
- <xs:complexType name="SimpleLiteral">
46
- <xs:annotation>
47
- <xs:documentation xml:lang="en">
48
- This is the default type for all of the DC elements.
49
- It permits text content only with optional
50
- xml:lang attribute.
51
- Text is allowed because mixed="true", but sub-elements
52
- are disallowed because minOccurs="0" and maxOccurs="0"
53
- are on the xs:any tag.
54
-
55
- This complexType allows for restriction or extension permitting
56
- child elements.
57
- </xs:documentation>
58
- </xs:annotation>
59
-
60
- <xs:complexContent mixed="true">
61
- <xs:restriction base="xs:anyType">
62
- <xs:sequence>
63
- <xs:any processContents="lax" minOccurs="0" maxOccurs="0"/>
64
- </xs:sequence>
65
- <xs:attribute ref="xml:lang" use="optional"/>
66
- </xs:restriction>
67
- </xs:complexContent>
68
- </xs:complexType>
69
-
70
- <xs:element name="any" type="SimpleLiteral" abstract="true"/>
71
-
72
- <xs:element name="title" substitutionGroup="any"/>
73
- <xs:element name="creator" substitutionGroup="any"/>
74
- <xs:element name="subject" substitutionGroup="any"/>
75
- <xs:element name="description" substitutionGroup="any"/>
76
- <xs:element name="publisher" substitutionGroup="any"/>
77
- <xs:element name="contributor" substitutionGroup="any"/>
78
- <xs:element name="date" substitutionGroup="any"/>
79
- <xs:element name="type" substitutionGroup="any"/>
80
- <xs:element name="format" substitutionGroup="any"/>
81
- <xs:element name="identifier" substitutionGroup="any"/>
82
- <xs:element name="source" substitutionGroup="any"/>
83
- <xs:element name="language" substitutionGroup="any"/>
84
- <xs:element name="relation" substitutionGroup="any"/>
85
- <xs:element name="coverage" substitutionGroup="any"/>
86
- <xs:element name="rights" substitutionGroup="any"/>
87
-
88
- <xs:group name="elementsGroup">
89
- <xs:annotation>
90
- <xs:documentation xml:lang="en">
91
- This group is included as a convenience for schema authors
92
- who need to refer to all the elements in the
93
- http://purl.org/dc/elements/1.1/ namespace.
94
- </xs:documentation>
95
- </xs:annotation>
96
-
97
- <xs:sequence>
98
- <xs:choice minOccurs="0" maxOccurs="unbounded">
99
- <xs:element ref="any"/>
100
- </xs:choice>
101
- </xs:sequence>
102
- </xs:group>
103
-
104
- <xs:complexType name="elementContainer">
105
- <xs:annotation>
106
- <xs:documentation xml:lang="en">
107
- This complexType is included as a convenience for schema authors who need to define a root
108
- or container element for all of the DC elements.
109
- </xs:documentation>
110
- </xs:annotation>
111
-
112
- <xs:choice>
113
- <xs:group ref="elementsGroup"/>
114
- </xs:choice>
115
- </xs:complexType>
116
-
117
-
118
- </xs:schema>
@@ -1,331 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
- xmlns:dc="http://purl.org/dc/elements/1.1/"
4
- xmlns:dcmitype="http://purl.org/dc/dcmitype/"
5
- targetNamespace="http://purl.org/dc/terms/"
6
- xmlns="http://purl.org/dc/terms/"
7
- elementFormDefault="qualified"
8
- attributeFormDefault="unqualified">
9
-
10
- <xs:annotation>
11
- <xs:documentation xml:lang="en">
12
- DCterms XML Schema
13
- XML Schema for http://purl.org/dc/terms/ namespace
14
-
15
- Created 2003-04-02
16
-
17
- Created by
18
-
19
- Tim Cole (t-cole3@uiuc.edu)
20
- Tom Habing (thabing@uiuc.edu)
21
- Jane Hunter (jane@dstc.edu.au)
22
- Pete Johnston (p.johnston@ukoln.ac.uk),
23
- Carl Lagoze (lagoze@cs.cornell.edu)
24
-
25
- This schema declares XML elements for the DC elements and
26
- DC element refinements from the http://purl.org/dc/terms/ namespace.
27
-
28
- It reuses the complexType dc:SimpleLiteral, imported from the dc.xsd
29
- schema, which permits simple element content, and makes the xml:lang
30
- attribute available.
31
-
32
- This complexType permits the derivation of other complexTypes
33
- which would permit child elements.
34
-
35
- DC elements are declared as substitutable for the abstract element dc:any, and
36
- DC element refinements are defined as substitutable for the base elements
37
- which they refine.
38
-
39
- This means that the default type for all XML elements (i.e. all DC elements and
40
- element refinements) is dc:SimpleLiteral.
41
-
42
- Encoding schemes are defined as complexTypes which are restrictions
43
- of the dc:SimpleLiteral complexType. These complexTypes restrict
44
- values to an appropriates syntax or format using data typing,
45
- regular expressions, or enumerated lists.
46
-
47
- In order to specify one of these encodings an xsi:type attribute must
48
- be used in the instance document.
49
-
50
- Also, note that one shortcoming of this approach is that any type can be
51
- applied to any of the elements or refinements. There is no convenient way
52
- to restrict types to specific elements using this approach.
53
-
54
- </xs:documentation>
55
-
56
- </xs:annotation>
57
-
58
-
59
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
60
- schemaLocation="http://www.w3.org/2001/03/xml.xsd">
61
- </xs:import>
62
-
63
- <xs:import namespace="http://purl.org/dc/elements/1.1/"
64
- schemaLocation="dc.xsd"/>
65
-
66
- <xs:import namespace="http://purl.org/dc/dcmitype/"
67
- schemaLocation="dcmitype.xsd"/>
68
-
69
- <xs:element name="alternative" substitutionGroup="dc:title"/>
70
-
71
- <xs:element name="tableOfContents" substitutionGroup="dc:description"/>
72
- <xs:element name="abstract" substitutionGroup="dc:description"/>
73
-
74
- <xs:element name="created" substitutionGroup="dc:date"/>
75
- <xs:element name="valid" substitutionGroup="dc:date"/>
76
- <xs:element name="available" substitutionGroup="dc:date"/>
77
- <xs:element name="issued" substitutionGroup="dc:date"/>
78
- <xs:element name="modified" substitutionGroup="dc:date"/>
79
- <xs:element name="dateAccepted" substitutionGroup="dc:date"/>
80
- <xs:element name="dateCopyrighted" substitutionGroup="dc:date"/>
81
- <xs:element name="dateSubmitted" substitutionGroup="dc:date"/>
82
-
83
- <xs:element name="extent" substitutionGroup="dc:format"/>
84
- <xs:element name="medium" substitutionGroup="dc:format"/>
85
-
86
- <xs:element name="isVersionOf" substitutionGroup="dc:relation"/>
87
- <xs:element name="hasVersion" substitutionGroup="dc:relation"/>
88
- <xs:element name="isReplacedBy" substitutionGroup="dc:relation"/>
89
- <xs:element name="replaces" substitutionGroup="dc:relation"/>
90
- <xs:element name="isRequiredBy" substitutionGroup="dc:relation"/>
91
- <xs:element name="requires" substitutionGroup="dc:relation"/>
92
- <xs:element name="isPartOf" substitutionGroup="dc:relation"/>
93
- <xs:element name="hasPart" substitutionGroup="dc:relation"/>
94
- <xs:element name="isReferencedBy" substitutionGroup="dc:relation"/>
95
- <xs:element name="references" substitutionGroup="dc:relation"/>
96
- <xs:element name="isFormatOf" substitutionGroup="dc:relation"/>
97
- <xs:element name="hasFormat" substitutionGroup="dc:relation"/>
98
- <xs:element name="conformsTo" substitutionGroup="dc:relation"/>
99
-
100
- <xs:element name="spatial" substitutionGroup="dc:coverage"/>
101
- <xs:element name="temporal" substitutionGroup="dc:coverage"/>
102
-
103
- <xs:element name="audience" substitutionGroup="dc:any"/>
104
-
105
- <xs:element name="mediator" substitutionGroup="audience"/>
106
- <xs:element name="educationLevel" substitutionGroup="audience"/>
107
-
108
- <xs:element name="accessRights" substitutionGroup="dc:rights"/>
109
-
110
- <xs:element name="bibliographicCitation" substitutionGroup="dc:identifier"/>
111
-
112
- <xs:complexType name="LCSH">
113
- <xs:simpleContent>
114
- <xs:restriction base="dc:SimpleLiteral">
115
- <xs:simpleType>
116
- <xs:restriction base="xs:string"/>
117
- </xs:simpleType>
118
- <xs:attribute ref="xml:lang" use="prohibited"/>
119
- </xs:restriction>
120
- </xs:simpleContent>
121
- </xs:complexType>
122
-
123
- <xs:complexType name="MESH">
124
- <xs:simpleContent>
125
- <xs:restriction base="dc:SimpleLiteral">
126
- <xs:simpleType>
127
- <xs:restriction base="xs:string"/>
128
- </xs:simpleType>
129
- <xs:attribute ref="xml:lang" use="prohibited"/>
130
- </xs:restriction>
131
- </xs:simpleContent>
132
- </xs:complexType>
133
-
134
- <xs:complexType name="DDC">
135
- <xs:simpleContent>
136
- <xs:restriction base="dc:SimpleLiteral">
137
- <xs:simpleType>
138
- <xs:restriction base="xs:string"/>
139
- </xs:simpleType>
140
- <xs:attribute ref="xml:lang" use="prohibited"/>
141
- </xs:restriction>
142
- </xs:simpleContent>
143
- </xs:complexType>
144
-
145
- <xs:complexType name="LCC">
146
- <xs:simpleContent>
147
- <xs:restriction base="dc:SimpleLiteral">
148
- <xs:simpleType>
149
- <xs:restriction base="xs:string"/>
150
- </xs:simpleType>
151
- <xs:attribute ref="xml:lang" use="prohibited"/>
152
- </xs:restriction>
153
- </xs:simpleContent>
154
- </xs:complexType>
155
-
156
- <xs:complexType name="UDC">
157
- <xs:simpleContent>
158
- <xs:restriction base="dc:SimpleLiteral">
159
- <xs:simpleType>
160
- <xs:restriction base="xs:string"/>
161
- </xs:simpleType>
162
- <xs:attribute ref="xml:lang" use="prohibited"/>
163
- </xs:restriction>
164
- </xs:simpleContent>
165
- </xs:complexType>
166
-
167
- <xs:complexType name="Period">
168
- <xs:simpleContent>
169
- <xs:restriction base="dc:SimpleLiteral">
170
- <xs:simpleType>
171
- <xs:restriction base="xs:string"/>
172
- </xs:simpleType>
173
- <xs:attribute ref="xml:lang" use="prohibited"/>
174
- </xs:restriction>
175
- </xs:simpleContent>
176
- </xs:complexType>
177
-
178
- <xs:complexType name="W3CDTF">
179
- <xs:simpleContent>
180
- <xs:restriction base="dc:SimpleLiteral">
181
- <xs:simpleType>
182
- <xs:union memberTypes="xs:gYear xs:gYearMonth xs:date xs:dateTime"/>
183
- </xs:simpleType>
184
- <xs:attribute ref="xml:lang" use="prohibited"/>
185
- </xs:restriction>
186
- </xs:simpleContent>
187
- </xs:complexType>
188
-
189
- <xs:complexType name="DCMIType">
190
- <xs:simpleContent>
191
- <xs:restriction base="dc:SimpleLiteral">
192
- <xs:simpleType>
193
- <xs:restriction base="dcmitype:DCMIType"/>
194
- </xs:simpleType>
195
- <xs:attribute ref="xml:lang" use="prohibited"/>
196
- </xs:restriction>
197
- </xs:simpleContent>
198
- </xs:complexType>
199
-
200
- <xs:complexType name="IMT">
201
- <xs:simpleContent>
202
- <xs:restriction base="dc:SimpleLiteral">
203
- <xs:simpleType>
204
- <xs:restriction base="xs:string"/>
205
- </xs:simpleType>
206
- <xs:attribute ref="xml:lang" use="prohibited"/>
207
- </xs:restriction>
208
- </xs:simpleContent>
209
- </xs:complexType>
210
-
211
- <xs:complexType name="URI">
212
- <xs:simpleContent>
213
- <xs:restriction base="dc:SimpleLiteral">
214
- <xs:simpleType>
215
- <xs:restriction base="xs:anyURI"/>
216
- </xs:simpleType>
217
- <xs:attribute ref="xml:lang" use="prohibited"/>
218
- </xs:restriction>
219
- </xs:simpleContent>
220
- </xs:complexType>
221
-
222
- <xs:complexType name="ISO639-2">
223
- <xs:simpleContent>
224
- <xs:restriction base="dc:SimpleLiteral">
225
- <xs:simpleType>
226
- <xs:restriction base="xs:string"/>
227
- </xs:simpleType>
228
- <xs:attribute ref="xml:lang" use="prohibited"/>
229
- </xs:restriction>
230
- </xs:simpleContent>
231
- </xs:complexType>
232
-
233
- <xs:complexType name="RFC1766">
234
- <xs:simpleContent>
235
- <xs:restriction base="dc:SimpleLiteral">
236
- <xs:simpleType>
237
- <xs:restriction base="xs:language"/>
238
- </xs:simpleType>
239
- <xs:attribute ref="xml:lang" use="prohibited"/>
240
- </xs:restriction>
241
- </xs:simpleContent>
242
- </xs:complexType>
243
-
244
- <xs:complexType name="RFC3066">
245
- <xs:simpleContent>
246
- <xs:restriction base="dc:SimpleLiteral">
247
- <xs:simpleType>
248
- <xs:restriction base="xs:language"/>
249
- </xs:simpleType>
250
- <xs:attribute ref="xml:lang" use="prohibited"/>
251
- </xs:restriction>
252
- </xs:simpleContent>
253
- </xs:complexType>
254
-
255
- <xs:complexType name="Point">
256
- <xs:simpleContent>
257
- <xs:restriction base="dc:SimpleLiteral">
258
- <xs:simpleType>
259
- <xs:restriction base="xs:string"/>
260
- </xs:simpleType>
261
- <xs:attribute ref="xml:lang" use="prohibited"/>
262
- </xs:restriction>
263
- </xs:simpleContent>
264
- </xs:complexType>
265
-
266
- <xs:complexType name="ISO3166">
267
- <xs:simpleContent>
268
- <xs:restriction base="dc:SimpleLiteral">
269
- <xs:simpleType>
270
- <xs:restriction base="xs:string"/>
271
- </xs:simpleType>
272
- <xs:attribute ref="xml:lang" use="prohibited"/>
273
- </xs:restriction>
274
- </xs:simpleContent>
275
- </xs:complexType>
276
-
277
- <xs:complexType name="Box">
278
- <xs:simpleContent>
279
- <xs:restriction base="dc:SimpleLiteral">
280
- <xs:simpleType>
281
- <xs:restriction base="xs:string"/>
282
- </xs:simpleType>
283
- <xs:attribute ref="xml:lang" use="prohibited"/>
284
- </xs:restriction>
285
- </xs:simpleContent>
286
- </xs:complexType>
287
-
288
- <xs:complexType name="TGN">
289
- <xs:simpleContent>
290
- <xs:restriction base="dc:SimpleLiteral">
291
- <xs:simpleType>
292
- <xs:restriction base="xs:string"/>
293
- </xs:simpleType>
294
- <xs:attribute ref="xml:lang" use="prohibited"/>
295
- </xs:restriction>
296
- </xs:simpleContent>
297
- </xs:complexType>
298
-
299
- <xs:group name="elementsAndRefinementsGroup">
300
- <xs:annotation>
301
- <xs:documentation xml:lang="en">
302
- This group is included as a convenience for schema authors
303
- who need to refer to all the DC elements and element refinements
304
- in the http://purl.org/dc/elements/1.1/ and
305
- http://purl.org/dc/terms namespaces.
306
- N.B. Refinements available via substitution groups.
307
- </xs:documentation>
308
- </xs:annotation>
309
-
310
- <xs:sequence>
311
- <xs:choice minOccurs="0" maxOccurs="unbounded">
312
- <xs:element ref="dc:any" />
313
- </xs:choice>
314
- </xs:sequence>
315
- </xs:group>
316
-
317
- <xs:complexType name="elementOrRefinementContainer">
318
- <xs:annotation>
319
- <xs:documentation xml:lang="en">
320
- This is included as a convenience for schema authors who need to define a root
321
- or container element for all of the DC elements and element refinements.
322
- </xs:documentation>
323
- </xs:annotation>
324
-
325
- <xs:choice>
326
- <xs:group ref="elementsAndRefinementsGroup"/>
327
- </xs:choice>
328
- </xs:complexType>
329
-
330
-
331
- </xs:schema>
@@ -1,50 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <xs:schema targetNamespace="http://schemas.openxmlformats.org/package/2006/metadata/core-properties"
3
- xmlns="http://schemas.openxmlformats.org/package/2006/metadata/core-properties"
4
- xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/"
5
- xmlns:dcterms="http://purl.org/dc/terms/" elementFormDefault="qualified" blockDefault="#all">
6
-
7
- <xs:import namespace="http://purl.org/dc/elements/1.1/"
8
- schemaLocation="http://dublincore.org/schemas/xmls/qdc/2003/04/02/dc.xsd"/>
9
- <xs:import namespace="http://purl.org/dc/terms/"
10
- schemaLocation="http://dublincore.org/schemas/xmls/qdc/2003/04/02/dcterms.xsd"/>
11
- <xs:import id="xml" namespace="http://www.w3.org/XML/1998/namespace"/>
12
-
13
- <xs:element name="coreProperties" type="CT_CoreProperties"/>
14
-
15
- <xs:complexType name="CT_CoreProperties">
16
- <xs:all>
17
- <xs:element name="category" minOccurs="0" maxOccurs="1" type="xs:string"/>
18
- <xs:element name="contentStatus" minOccurs="0" maxOccurs="1" type="xs:string"/>
19
- <xs:element ref="dcterms:created" minOccurs="0" maxOccurs="1"/>
20
- <xs:element ref="dc:creator" minOccurs="0" maxOccurs="1"/>
21
- <xs:element ref="dc:description" minOccurs="0" maxOccurs="1"/>
22
- <xs:element ref="dc:identifier" minOccurs="0" maxOccurs="1"/>
23
- <xs:element name="keywords" minOccurs="0" maxOccurs="1" type="CT_Keywords"/>
24
- <xs:element ref="dc:language" minOccurs="0" maxOccurs="1"/>
25
- <xs:element name="lastModifiedBy" minOccurs="0" maxOccurs="1" type="xs:string"/>
26
- <xs:element name="lastPrinted" minOccurs="0" maxOccurs="1" type="xs:dateTime"/>
27
- <xs:element ref="dcterms:modified" minOccurs="0" maxOccurs="1"/>
28
- <xs:element name="revision" minOccurs="0" maxOccurs="1" type="xs:string"/>
29
- <xs:element ref="dc:subject" minOccurs="0" maxOccurs="1"/>
30
- <xs:element ref="dc:title" minOccurs="0" maxOccurs="1"/>
31
- <xs:element name="version" minOccurs="0" maxOccurs="1" type="xs:string"/>
32
- </xs:all>
33
- </xs:complexType>
34
-
35
- <xs:complexType name="CT_Keywords" mixed="true">
36
- <xs:sequence>
37
- <xs:element name="value" minOccurs="0" maxOccurs="unbounded" type="CT_Keyword"/>
38
- </xs:sequence>
39
- <xs:attribute ref="xml:lang" use="optional"/>
40
- </xs:complexType>
41
-
42
- <xs:complexType name="CT_Keyword">
43
- <xs:simpleContent>
44
- <xs:extension base="xs:string">
45
- <xs:attribute ref="xml:lang" use="optional"/>
46
- </xs:extension>
47
- </xs:simpleContent>
48
- </xs:complexType>
49
-
50
- </xs:schema>
@@ -1,17 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestValAxisData < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet
8
- chart = @ws.drawing.add_chart Axlsx::Line3DChart
9
- @series = chart.add_series :data=>[0,1,2]
10
- end
11
-
12
- def test_initialize
13
- assert(@series.data.is_a?Axlsx::SimpleTypedList)
14
- assert_equal(@series.data, [0,1,2])
15
- end
16
-
17
- end
@@ -1,72 +0,0 @@
1
- require 'test/unit'
2
- require 'tc_helper.rb'
3
-
4
- class TestTable < Test::Unit::TestCase
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet
8
- 40.times do
9
- @ws << ["aa","aa","aa","aa","aa","aa"]
10
- end
11
- end
12
-
13
- def test_initialization
14
- assert(@ws.workbook.tables.empty?)
15
- assert(@ws.tables.empty?)
16
-
17
- end
18
-
19
- def test_add_table
20
- name = "test"
21
- table = @ws.add_table("A1:D5", :name => name)
22
- assert(table.is_a?(Axlsx::Table), "must create a table")
23
- assert_equal(@ws.workbook.tables.last, table, "must be added to workbook table collection")
24
- assert_equal(@ws.tables.last, table, "must be added to worksheet table collection")
25
- assert_equal(table.name, name, "options for name are applied")
26
-
27
- end
28
-
29
- def test_charts
30
- assert(@ws.drawing.charts.empty?)
31
- chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
32
- assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
33
- chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
34
- assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
35
- end
36
-
37
- def test_pn
38
- table = @ws.add_table("A1:D5")
39
- assert_equal(@ws.tables.first.pn, "tables/table1.xml")
40
- end
41
-
42
- def test_rId
43
- table = @ws.add_table("A1:D5")
44
- assert_equal(@ws.tables.first.rId, "rId1")
45
- end
46
-
47
- def test_index
48
- table = @ws.add_table("A1:D5")
49
- assert_equal(@ws.tables.first.index, @ws.workbook.tables.index(@ws.tables.first))
50
- end
51
-
52
- def test_relationships
53
- assert(@ws.relationships.empty?)
54
- table = @ws.add_table("A1:D5")
55
- assert_equal(@ws.relationships.size, 1, "adding a table adds a relationship")
56
- table = @ws.add_table("F1:J5")
57
- assert_equal(@ws.relationships.size, 2, "adding a table adds a relationship")
58
- end
59
-
60
- def test_to_xml
61
- table = @ws.add_table("A1:D5")
62
- schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
63
- doc = Nokogiri::XML(table.to_xml)
64
- errors = []
65
- schema.validate(doc).each do |error|
66
- errors.push error
67
- puts error.message
68
- end
69
- assert(errors.empty?, "error free validation")
70
- end
71
-
72
- end