cloudmersive-convert-api-client 1.6.6 → 1.6.7

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +32 -5
  3. data/docs/Base64DecodeRequest.md +8 -0
  4. data/docs/Base64DecodeResponse.md +9 -0
  5. data/docs/Base64DetectRequest.md +8 -0
  6. data/docs/Base64DetectResponse.md +9 -0
  7. data/docs/Base64EncodeRequest.md +8 -0
  8. data/docs/Base64EncodeResponse.md +9 -0
  9. data/docs/ChangeLineEndingResponse.md +9 -0
  10. data/docs/ConvertDocumentApi.md +6 -2
  11. data/docs/DetectLineEndingsResponse.md +11 -0
  12. data/docs/EditDocumentApi.md +5 -5
  13. data/docs/EditTextApi.md +506 -0
  14. data/docs/MergeDocumentApi.md +134 -0
  15. data/docs/RemoveHtmlFromTextRequest.md +8 -0
  16. data/docs/RemoveHtmlFromTextResponse.md +9 -0
  17. data/docs/RemoveWhitespaceFromTextRequest.md +8 -0
  18. data/docs/RemoveWhitespaceFromTextResponse.md +9 -0
  19. data/docs/SplitDocumentApi.md +62 -0
  20. data/docs/SplitTextDocumentByStringResult.md +10 -0
  21. data/docs/TextDocumentElement.md +9 -0
  22. data/docs/TextEncodingDetectResponse.md +9 -0
  23. data/lib/cloudmersive-convert-api-client.rb +16 -0
  24. data/lib/cloudmersive-convert-api-client/api/convert_document_api.rb +3 -0
  25. data/lib/cloudmersive-convert-api-client/api/edit_document_api.rb +6 -6
  26. data/lib/cloudmersive-convert-api-client/api/edit_text_api.rb +528 -0
  27. data/lib/cloudmersive-convert-api-client/api/merge_document_api.rb +150 -0
  28. data/lib/cloudmersive-convert-api-client/api/split_document_api.rb +66 -0
  29. data/lib/cloudmersive-convert-api-client/models/base64_decode_request.rb +189 -0
  30. data/lib/cloudmersive-convert-api-client/models/base64_decode_response.rb +215 -0
  31. data/lib/cloudmersive-convert-api-client/models/base64_detect_request.rb +189 -0
  32. data/lib/cloudmersive-convert-api-client/models/base64_detect_response.rb +199 -0
  33. data/lib/cloudmersive-convert-api-client/models/base64_encode_request.rb +205 -0
  34. data/lib/cloudmersive-convert-api-client/models/base64_encode_response.rb +199 -0
  35. data/lib/cloudmersive-convert-api-client/models/change_line_ending_response.rb +199 -0
  36. data/lib/cloudmersive-convert-api-client/models/detect_line_endings_response.rb +219 -0
  37. data/lib/cloudmersive-convert-api-client/models/remove_html_from_text_request.rb +189 -0
  38. data/lib/cloudmersive-convert-api-client/models/remove_html_from_text_response.rb +199 -0
  39. data/lib/cloudmersive-convert-api-client/models/remove_whitespace_from_text_request.rb +189 -0
  40. data/lib/cloudmersive-convert-api-client/models/remove_whitespace_from_text_response.rb +199 -0
  41. data/lib/cloudmersive-convert-api-client/models/split_text_document_by_string_result.rb +210 -0
  42. data/lib/cloudmersive-convert-api-client/models/text_document_element.rb +199 -0
  43. data/lib/cloudmersive-convert-api-client/models/text_encoding_detect_response.rb +199 -0
  44. data/lib/cloudmersive-convert-api-client/version.rb +1 -1
  45. data/spec/api/convert_document_api_spec.rb +1 -0
  46. data/spec/api/edit_document_api_spec.rb +3 -3
  47. data/spec/api/edit_text_api_spec.rb +144 -0
  48. data/spec/api/merge_document_api_spec.rb +34 -0
  49. data/spec/api/split_document_api_spec.rb +14 -0
  50. data/spec/models/base64_decode_request_spec.rb +42 -0
  51. data/spec/models/base64_decode_response_spec.rb +48 -0
  52. data/spec/models/base64_detect_request_spec.rb +42 -0
  53. data/spec/models/base64_detect_response_spec.rb +48 -0
  54. data/spec/models/base64_encode_request_spec.rb +42 -0
  55. data/spec/models/base64_encode_response_spec.rb +48 -0
  56. data/spec/models/change_line_ending_response_spec.rb +48 -0
  57. data/spec/models/detect_line_endings_response_spec.rb +60 -0
  58. data/spec/models/remove_html_from_text_request_spec.rb +42 -0
  59. data/spec/models/remove_html_from_text_response_spec.rb +48 -0
  60. data/spec/models/remove_whitespace_from_text_request_spec.rb +42 -0
  61. data/spec/models/remove_whitespace_from_text_response_spec.rb +48 -0
  62. data/spec/models/split_text_document_by_string_result_spec.rb +54 -0
  63. data/spec/models/text_document_element_spec.rb +48 -0
  64. data/spec/models/text_encoding_detect_response_spec.rb +48 -0
  65. metadata +50 -2
@@ -0,0 +1,199 @@
1
+ =begin
2
+ #convertapi
3
+
4
+ #Convert API lets you effortlessly convert file formats and types.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module CloudmersiveConvertApiClient
16
+ # Result of detecting text encoding
17
+ class TextEncodingDetectResponse
18
+ # True if successful, false otherwise
19
+ attr_accessor :successful
20
+
21
+ # Text encoding used in file; possible values are ASCII, UTF7, UTF8, UTF16, BigEndianUnicode and UTF32
22
+ attr_accessor :text_encoding
23
+
24
+
25
+ # Attribute mapping from ruby-style variable name to JSON key.
26
+ def self.attribute_map
27
+ {
28
+ :'successful' => :'Successful',
29
+ :'text_encoding' => :'TextEncoding'
30
+ }
31
+ end
32
+
33
+ # Attribute type mapping.
34
+ def self.swagger_types
35
+ {
36
+ :'successful' => :'BOOLEAN',
37
+ :'text_encoding' => :'String'
38
+ }
39
+ end
40
+
41
+ # Initializes the object
42
+ # @param [Hash] attributes Model attributes in the form of hash
43
+ def initialize(attributes = {})
44
+ return unless attributes.is_a?(Hash)
45
+
46
+ # convert string to symbol for hash key
47
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
48
+
49
+ if attributes.has_key?(:'Successful')
50
+ self.successful = attributes[:'Successful']
51
+ end
52
+
53
+ if attributes.has_key?(:'TextEncoding')
54
+ self.text_encoding = attributes[:'TextEncoding']
55
+ end
56
+
57
+ end
58
+
59
+ # Show invalid properties with the reasons. Usually used together with valid?
60
+ # @return Array for valid properties with the reasons
61
+ def list_invalid_properties
62
+ invalid_properties = Array.new
63
+ return invalid_properties
64
+ end
65
+
66
+ # Check to see if the all the properties in the model are valid
67
+ # @return true if the model is valid
68
+ def valid?
69
+ return true
70
+ end
71
+
72
+ # Checks equality by comparing each attribute.
73
+ # @param [Object] Object to be compared
74
+ def ==(o)
75
+ return true if self.equal?(o)
76
+ self.class == o.class &&
77
+ successful == o.successful &&
78
+ text_encoding == o.text_encoding
79
+ end
80
+
81
+ # @see the `==` method
82
+ # @param [Object] Object to be compared
83
+ def eql?(o)
84
+ self == o
85
+ end
86
+
87
+ # Calculates hash code according to all attributes.
88
+ # @return [Fixnum] Hash code
89
+ def hash
90
+ [successful, text_encoding].hash
91
+ end
92
+
93
+ # Builds the object from hash
94
+ # @param [Hash] attributes Model attributes in the form of hash
95
+ # @return [Object] Returns the model itself
96
+ def build_from_hash(attributes)
97
+ return nil unless attributes.is_a?(Hash)
98
+ self.class.swagger_types.each_pair do |key, type|
99
+ if type =~ /\AArray<(.*)>/i
100
+ # check to ensure the input is an array given that the the attribute
101
+ # is documented as an array but the input is not
102
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
103
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
104
+ end
105
+ elsif !attributes[self.class.attribute_map[key]].nil?
106
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
107
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
108
+ end
109
+
110
+ self
111
+ end
112
+
113
+ # Deserializes the data based on type
114
+ # @param string type Data type
115
+ # @param string value Value to be deserialized
116
+ # @return [Object] Deserialized data
117
+ def _deserialize(type, value)
118
+ case type.to_sym
119
+ when :DateTime
120
+ DateTime.parse(value)
121
+ when :Date
122
+ Date.parse(value)
123
+ when :String
124
+ value.to_s
125
+ when :Integer
126
+ value.to_i
127
+ when :Float
128
+ value.to_f
129
+ when :BOOLEAN
130
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
131
+ true
132
+ else
133
+ false
134
+ end
135
+ when :Object
136
+ # generic object (usually a Hash), return directly
137
+ value
138
+ when /\AArray<(?<inner_type>.+)>\z/
139
+ inner_type = Regexp.last_match[:inner_type]
140
+ value.map { |v| _deserialize(inner_type, v) }
141
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
142
+ k_type = Regexp.last_match[:k_type]
143
+ v_type = Regexp.last_match[:v_type]
144
+ {}.tap do |hash|
145
+ value.each do |k, v|
146
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
147
+ end
148
+ end
149
+ else # model
150
+ temp_model = CloudmersiveConvertApiClient.const_get(type).new
151
+ temp_model.build_from_hash(value)
152
+ end
153
+ end
154
+
155
+ # Returns the string representation of the object
156
+ # @return [String] String presentation of the object
157
+ def to_s
158
+ to_hash.to_s
159
+ end
160
+
161
+ # to_body is an alias to to_hash (backward compatibility)
162
+ # @return [Hash] Returns the object in the form of hash
163
+ def to_body
164
+ to_hash
165
+ end
166
+
167
+ # Returns the object in the form of hash
168
+ # @return [Hash] Returns the object in the form of hash
169
+ def to_hash
170
+ hash = {}
171
+ self.class.attribute_map.each_pair do |attr, param|
172
+ value = self.send(attr)
173
+ next if value.nil?
174
+ hash[param] = _to_hash(value)
175
+ end
176
+ hash
177
+ end
178
+
179
+ # Outputs non-array value in the form of hash
180
+ # For object, use to_hash. Otherwise, just return the value
181
+ # @param [Object] value Any valid value
182
+ # @return [Hash] Returns the value in the form of hash
183
+ def _to_hash(value)
184
+ if value.is_a?(Array)
185
+ value.compact.map{ |v| _to_hash(v) }
186
+ elsif value.is_a?(Hash)
187
+ {}.tap do |hash|
188
+ value.each { |k, v| hash[k] = _to_hash(v) }
189
+ end
190
+ elsif value.respond_to? :to_hash
191
+ value.to_hash
192
+ else
193
+ value
194
+ end
195
+ end
196
+
197
+ end
198
+
199
+ end
@@ -11,5 +11,5 @@ Swagger Codegen version: 2.3.1
11
11
  =end
12
12
 
13
13
  module CloudmersiveConvertApiClient
14
- VERSION = "1.6.6"
14
+ VERSION = "1.6.7"
15
15
  end
@@ -146,6 +146,7 @@ describe 'ConvertDocumentApi' do
146
146
  # Convert Office Word Documents (docx) to text
147
147
  # @param input_file Input file to perform the operation on.
148
148
  # @param [Hash] opts the optional parameters
149
+ # @option opts [String] :text_formatting_mode Optional; specify how whitespace should be handled when converting the document to text. Possible values are &#39;preserveWhitespace&#39; which will attempt to preserve whitespace in the document and relative positioning of text within the document, and &#39;minimizeWhitespace&#39; which will not insert additional spaces into the document in most cases. Default is &#39;minimizeWhitespace&#39;.
149
150
  # @return [TextConversionResult]
150
151
  describe 'convert_document_docx_to_txt test' do
151
152
  it "should work" do
@@ -34,7 +34,7 @@ describe 'EditDocumentApi' do
34
34
 
35
35
  # unit tests for edit_document_begin_editing
36
36
  # Begin editing a document
37
- # Uploads a document to Cloudmersive to begin a series of one or more editing operations
37
+ # Uploads a document to Cloudmersive to begin a series of one or more editing operations. To edit a document, first call Begin Editing on the document. Then perform operations on the document using the secure URL returned from BeginEditing, such as Word DOCX Delete Pages and Insert Table. Finally, perform finish editing on the URL to return the resulting edited document. The editing URL is temporary and only stored in-memory cache, and will automatically expire from the cache after 30 minutes, and cannot be directly accessed.
38
38
  # @param input_file Input file to perform the operation on.
39
39
  # @param [Hash] opts the optional parameters
40
40
  # @return [String]
@@ -58,7 +58,7 @@ describe 'EditDocumentApi' do
58
58
 
59
59
  # unit tests for edit_document_docx_create_blank_document
60
60
  # Create a blank Word DOCX document
61
- # Returns a blank Word DOCX Document format file
61
+ # Returns a blank Word DOCX Document format file. The file is blank, with no contents. Use additional editing commands such as Insert Paragraph or Insert Table or Insert Image to populate the document.
62
62
  # @param input Document input request
63
63
  # @param [Hash] opts the optional parameters
64
64
  # @return [CreateBlankDocxResponse]
@@ -381,7 +381,7 @@ describe 'EditDocumentApi' do
381
381
  end
382
382
 
383
383
  # unit tests for edit_document_finish_editing
384
- # Download result from document editing
384
+ # Finish editing document, and download result from document editing
385
385
  # Once done editing a document, download the result. Begin editing a document by calling begin-editing, then perform operations, then call finish-editing to get the result.
386
386
  # @param req_config Cloudmersive Document URL to complete editing on
387
387
  # @param [Hash] opts the optional parameters
@@ -0,0 +1,144 @@
1
+ =begin
2
+ #convertapi
3
+
4
+ #Convert API lets you effortlessly convert file formats and types.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for CloudmersiveConvertApiClient::EditTextApi
17
+ # Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
18
+ # Please update as you see appropriate
19
+ describe 'EditTextApi' do
20
+ before do
21
+ # run before each test
22
+ @instance = CloudmersiveConvertApiClient::EditTextApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of EditTextApi' do
30
+ it 'should create an instance of EditTextApi' do
31
+ expect(@instance).to be_instance_of(CloudmersiveConvertApiClient::EditTextApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for edit_text_base64_decode
36
+ # Base 64 decode, convert base 64 string to binary content
37
+ # Decodes / converts base 64 UTF-8 text string to binary content
38
+ # @param request
39
+ # @param [Hash] opts the optional parameters
40
+ # @return [Base64DecodeResponse]
41
+ describe 'edit_text_base64_decode test' do
42
+ it "should work" do
43
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
44
+ end
45
+ end
46
+
47
+ # unit tests for edit_text_base64_detect
48
+ # Detect, check if text string is base 64 encoded
49
+ # Checks, detects if input string is base 64 encoded
50
+ # @param request
51
+ # @param [Hash] opts the optional parameters
52
+ # @return [Base64DetectResponse]
53
+ describe 'edit_text_base64_detect test' do
54
+ it "should work" do
55
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
56
+ end
57
+ end
58
+
59
+ # unit tests for edit_text_base64_encode
60
+ # Base 64 encode, convert binary or file data to a text string
61
+ # Encodes / converts binary or file data to a text string
62
+ # @param request
63
+ # @param [Hash] opts the optional parameters
64
+ # @return [Base64EncodeResponse]
65
+ describe 'edit_text_base64_encode test' do
66
+ it "should work" do
67
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
68
+ end
69
+ end
70
+
71
+ # unit tests for edit_text_change_line_endings
72
+ # Set, change line endings of a text file
73
+ # Sets the line ending type of a text file; set to Windows, Unix or Mac.
74
+ # @param line_ending_type Required; &#39;Windows&#39; will use carriage return and line feed, &#39;Unix&#39; will use newline, and &#39;Mac&#39; will use carriage return
75
+ # @param input_file Input file to perform the operation on.
76
+ # @param [Hash] opts the optional parameters
77
+ # @return [ChangeLineEndingResponse]
78
+ describe 'edit_text_change_line_endings test' do
79
+ it "should work" do
80
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
81
+ end
82
+ end
83
+
84
+ # unit tests for edit_text_detect_line_endings
85
+ # Detect line endings of a text file
86
+ # Detect line ending type (Windows, Unix or Mac) of an input file.
87
+ # @param input_file Input file to perform the operation on.
88
+ # @param [Hash] opts the optional parameters
89
+ # @return [DetectLineEndingsResponse]
90
+ describe 'edit_text_detect_line_endings test' do
91
+ it "should work" do
92
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
93
+ end
94
+ end
95
+
96
+ # unit tests for edit_text_remove_all_whitespace
97
+ # Remove whitespace from text string
98
+ # Removes all whitespace from text, leaving behind only non-whitespace characters. Whitespace includes newlines, spaces and other whitespace characters.
99
+ # @param request
100
+ # @param [Hash] opts the optional parameters
101
+ # @return [RemoveWhitespaceFromTextResponse]
102
+ describe 'edit_text_remove_all_whitespace test' do
103
+ it "should work" do
104
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
105
+ end
106
+ end
107
+
108
+ # unit tests for edit_text_remove_html
109
+ # Remove HTML from text string
110
+ # Removes HTML from text, leaving behind only text. Formatted text will become plain text. Important for protecting against HTML and Cross-Site-Scripting attacks.
111
+ # @param request
112
+ # @param [Hash] opts the optional parameters
113
+ # @return [RemoveHtmlFromTextResponse]
114
+ describe 'edit_text_remove_html test' do
115
+ it "should work" do
116
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
117
+ end
118
+ end
119
+
120
+ # unit tests for edit_text_text_encoding_detect
121
+ # Detect text encoding of file
122
+ # Checks text encoding of file
123
+ # @param input_file Input file to perform the operation on.
124
+ # @param [Hash] opts the optional parameters
125
+ # @return [TextEncodingDetectResponse]
126
+ describe 'edit_text_text_encoding_detect test' do
127
+ it "should work" do
128
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
129
+ end
130
+ end
131
+
132
+ # unit tests for edit_text_trim_whitespace
133
+ # Trim leading and trailing whitespace from text string
134
+ # Trim leading and trailing whitespace from text, leaving behind a trimmed string. Whitespace includes newlines, spaces and other whitespace characters.
135
+ # @param request
136
+ # @param [Hash] opts the optional parameters
137
+ # @return [RemoveWhitespaceFromTextResponse]
138
+ describe 'edit_text_trim_whitespace test' do
139
+ it "should work" do
140
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
141
+ end
142
+ end
143
+
144
+ end
@@ -147,6 +147,40 @@ describe 'MergeDocumentApi' do
147
147
  end
148
148
  end
149
149
 
150
+ # unit tests for merge_document_txt
151
+ # Merge Two Text (TXT) Files Together
152
+ # Combine two Text (.TXT) files into a single text document, preserving the order of the input documents in the combined document by stacking them vertically.
153
+ # @param input_file1 First input file to perform the operation on.
154
+ # @param input_file2 Second input file to perform the operation on (more than 2 can be supplied).
155
+ # @param [Hash] opts the optional parameters
156
+ # @return [Object]
157
+ describe 'merge_document_txt test' do
158
+ it "should work" do
159
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
160
+ end
161
+ end
162
+
163
+ # unit tests for merge_document_txt_multi
164
+ # Merge Multple Text (TXT) Files Together
165
+ # Combine multiple Text (.TXT) files into a single text document, preserving the order of the input documents in the combined document by stacking them vertically.
166
+ # @param input_file1 First input file to perform the operation on.
167
+ # @param input_file2 Second input file to perform the operation on.
168
+ # @param [Hash] opts the optional parameters
169
+ # @option opts [File] :input_file3 Third input file to perform the operation on.
170
+ # @option opts [File] :input_file4 Fourth input file to perform the operation on.
171
+ # @option opts [File] :input_file5 Fifth input file to perform the operation on.
172
+ # @option opts [File] :input_file6 Sixth input file to perform the operation on.
173
+ # @option opts [File] :input_file7 Seventh input file to perform the operation on.
174
+ # @option opts [File] :input_file8 Eighth input file to perform the operation on.
175
+ # @option opts [File] :input_file9 Ninth input file to perform the operation on.
176
+ # @option opts [File] :input_file10 Tenth input file to perform the operation on.
177
+ # @return [String]
178
+ describe 'merge_document_txt_multi test' do
179
+ it "should work" do
180
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
181
+ end
182
+ end
183
+
150
184
  # unit tests for merge_document_xlsx
151
185
  # Merge Two Excel XLSX Together
152
186
  # Combine two Office Excel spreadsheets (xlsx) into a single Office Excel spreadsheet
@@ -83,6 +83,20 @@ describe 'SplitDocumentApi' do
83
83
  end
84
84
  end
85
85
 
86
+ # unit tests for split_document_txt_by_string
87
+ # Split a single Text file (txt) by a string delimiter
88
+ # Split a Text (txt) Document by a string delimiter, returning each component of the string as an array of strings.
89
+ # @param input_file Input file to perform the operation on.
90
+ # @param split_delimiter Required; String to split up the input file on
91
+ # @param [Hash] opts the optional parameters
92
+ # @option opts [BOOLEAN] :skip_empty_elements Optional; If true, empty elements will be skipped in the output
93
+ # @return [SplitTextDocumentByStringResult]
94
+ describe 'split_document_txt_by_string test' do
95
+ it "should work" do
96
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
97
+ end
98
+ end
99
+
86
100
  # unit tests for split_document_xlsx
87
101
  # Split a single Excel XLSX into Separate Worksheets
88
102
  # Split an Excel XLSX Spreadsheet, comprised of multiple Worksheets (or Tabs) into separate Excel XLSX spreadsheet files, with each containing exactly one Worksheet.