Skip to content

Commit d0cffcc

Browse files
committed
ISSUE-CELLSCLOUD-13552: Add new features and fix test cases.
1 parent 7e522cd commit d0cffcc

25 files changed

+1121
-154
lines changed

README.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
1-
![](https://img.shields.io/badge/aspose.cells%20Cloud%20SDK-25.10-green?style=for-the-badge&logo=ruby) [![Product Page](https://img.shields.io/badge/Product-0288d1?style=for-the-badge&logo=Google-Chrome&logoColor=white)](https://products.aspose.cloud/cells/ruby/) [![Documentation](https://img.shields.io/badge/Documentation-388e3c?style=for-the-badge&logo=Hugo&logoColor=white)](https://docs.aspose.cloud/cells/) [![API Ref](https://img.shields.io/badge/Reference-f39c12?style=for-the-badge&logo=html5&logoColor=white)](https://reference.aspose.cloud/cells/) [![Examples](https://img.shields.io/badge/Examples-1565c0?style=for-the-badge&logo=Github&logoColor=white)](https://github.com/aspose-cells-cloud/aspose-cells-cloud-perl/tree/master/Examples) [![Blog](https://img.shields.io/badge/Blog-d32f2f?style=for-the-badge&logo=WordPress&logoColor=white)](https://blog.aspose.cloud/categories/aspose.cells-cloud-product-family/) [![Support](https://img.shields.io/badge/Support-7b1fa2?style=for-the-badge&logo=Discourse&logoColor=white)](https://forum.aspose.cloud/c/cells/7) [![Gem](https://img.shields.io/gem/v/aspose_cells_cloud?style=for-the-badge)](https://rubygems.org/gems/aspose_cells_cloud) [![Gem](https://img.shields.io/gem/dt/aspose_cells_cloud?style=for-the-badge)](https://github.com/aspose-cells-cloud/aspose-cells-cloud-ruby/archive/refs/heads/master.zip) [![GitHub license](https://img.shields.io/github/license/aspose-cells-cloud/aspose-cells-cloud-ruby?style=for-the-badge)](https://github.com/aspose-cells-cloud/aspose-cells-cloud-ruby/blob/master/LICENSE) ![GitHub commits since latest release (by date)](https://img.shields.io/github/commits-since/aspose-cells-cloud/aspose-cells-cloud-ruby/25.10?style=for-the-badge)
1+
![](https://img.shields.io/badge/aspose.cells%20Cloud%20SDK-25.11-green?style=for-the-badge&logo=ruby) [![Product Page](https://img.shields.io/badge/Product-0288d1?style=for-the-badge&logo=Google-Chrome&logoColor=white)](https://products.aspose.cloud/cells/ruby/) [![Documentation](https://img.shields.io/badge/Documentation-388e3c?style=for-the-badge&logo=Hugo&logoColor=white)](https://docs.aspose.cloud/cells/) [![API Ref](https://img.shields.io/badge/Reference-f39c12?style=for-the-badge&logo=html5&logoColor=white)](https://reference.aspose.cloud/cells/) [![Examples](https://img.shields.io/badge/Examples-1565c0?style=for-the-badge&logo=Github&logoColor=white)](https://github.com/aspose-cells-cloud/aspose-cells-cloud-perl/tree/master/Examples) [![Blog](https://img.shields.io/badge/Blog-d32f2f?style=for-the-badge&logo=WordPress&logoColor=white)](https://blog.aspose.cloud/categories/aspose.cells-cloud-product-family/) [![Support](https://img.shields.io/badge/Support-7b1fa2?style=for-the-badge&logo=Discourse&logoColor=white)](https://forum.aspose.cloud/c/cells/7) [![Gem](https://img.shields.io/gem/v/aspose_cells_cloud?style=for-the-badge)](https://rubygems.org/gems/aspose_cells_cloud) [![Gem](https://img.shields.io/gem/dt/aspose_cells_cloud?style=for-the-badge)](https://github.com/aspose-cells-cloud/aspose-cells-cloud-ruby/archive/refs/heads/master.zip) [![GitHub license](https://img.shields.io/github/license/aspose-cells-cloud/aspose-cells-cloud-ruby?style=for-the-badge)](https://github.com/aspose-cells-cloud/aspose-cells-cloud-ruby/blob/master/LICENSE) ![GitHub commits since latest release (by date)](https://img.shields.io/github/commits-since/aspose-cells-cloud/aspose-cells-cloud-ruby/25.11?style=for-the-badge)
22

3-
[Aspose.Cells Cloud SDK for Ruby](https://products.aspose.cloud/cells/ruby) is a cloud-first REST API that lets Ruby applications create, read, edit, convert, and repair [Excel, ODS, CSV, JSON, and other spreadsheet files](https://docs.aspose.cloud/cells/supported-file-formats/) without installing Microsoft Office. It supports advanced features, including cell formatting, formulas, pivot tables, conditional styling, charts, hyperlinks, comments, data validation, document splitting, and merging, and runs on AWS, Azure, and Google Cloud, while ensuring data integrity.
3+
[Aspose.Cells Cloud SDK for Ruby](https://products.aspose.cloud/cells/ruby) is a cloud-native REST API that enables Ruby developers to **create**, **read**, **edit**, **convert**, and **repair** spreadsheet files—including **Excel** (**XLS**, **XLSX**, **XLSB**, **XLSM**), **OpenDocument Spreadsheet (ODS**), **CSV**, **TSV**, **JSON**, **HTML**, **PDF**, and **more—without requiring Microsoft Excel or Office to be installed**.
4+
5+
Built on the **Aspose.Cells Cloud Web API**, this MIT-licensed SDK supports advanced spreadsheet operations such as:
6+
7+
- Cell formatting, formulas, and data validation
8+
- Pivot tables, charts, hyperlinks, and comments
9+
- Conditional formatting and smart markers
10+
- Worksheet merging, splitting, and protection
11+
- Batch processing and background removal
12+
13+
It seamlessly integrates with **AWS**, **Microsoft Azure**, and **Google Cloud**, ensuring **high availability**, **scalability**, and **data integrity**. Ideal for serverless apps, microservices, and cloud automation workflows.
414

515
## Quick Start Guide
616

@@ -12,7 +22,7 @@ To begin with Aspose.Cells Cloud, here's what you need to do:
1222
- execute the following command to get the latest Gem package.
1323

1424
```console
15-
gem 'aspose_cells_cloud', '~> 25.10'
25+
gem 'aspose_cells_cloud', '~> 25.11'
1626
```
1727

1828
or install directly
@@ -114,7 +124,7 @@ request = AsposeCellsCloud::UploadFileRequest.new(:UploadFiles=>"EmployeeSales
114124
- Import/Export: Facilitates importing data from various sources into spreadsheets and exporting spreadsheet data to other formats.
115125
- Security Management: Offers a range of security features like data encryption, access control, and permission management to safeguard the security and integrity of spreadsheet data.
116126

117-
## Feature & Enhancements in Version 25.10
127+
## Feature & Enhancements in Version 25.11
118128

119129
Full list of issues covering all changes in this release:
120130

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# **Spreadsheet Cloud API: convertSpreadsheetToJson**
2+
3+
4+
5+
6+
## **Quick Start**
7+
8+
- **Base URL**: `http://api.aspose.cloud/v4.0`
9+
- **Authentication Method**: `JWT (OAuth2, application)` **Token URL**: `https://api.aspose.cloud/connect/token`
10+
## **Interface Details**
11+
12+
### **Endpoint**
13+
14+
```
15+
PUT http://api.aspose.cloud/v4.0/cells/convert/spreadsheet/json
16+
```
17+
### **Function Description**
18+
19+
### The request parameters of **convertSpreadsheetToJson** API are:
20+
21+
| Parameter Name | Type | Path/Query String/HTTPBody | Description |
22+
| :- | :- | :- |:- |
23+
|Spreadsheet|File|FormData|Upload spreadsheet file.|
24+
|outPath|String|Query|(Optional) The folder path where the workbook is stored. The default is null.|
25+
|outStorageName|String|Query|Output file Storage Name.|
26+
|fontsLocation|String|Query|Use Custom fonts.|
27+
|region|String|Query|The spreadsheet region setting.|
28+
|password|String|Query|The password for opening spreadsheet file.|
29+
30+
### **Response Description**
31+
```json
32+
{
33+
File
34+
}
35+
```
36+
37+
38+
## OpenAPI Specification
39+
40+
The [OpenAPI Specification](https://reference.aspose.cloud/cells/#/ConversionController/ConvertSpreadsheetToJson) defines a publicly accessible programming interface and lets you carry out REST interactions directly from a web browser.
41+
42+

docs/api/ExtractText.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ Extracts substrings, numbers, or fixed-length prefixes/suffixes from the selecte
2525
| :- | :- | :- |:- |
2626
|Spreadsheet|File|FormData|Upload spreadsheet file.|
2727
|extractTextType|String|Query|Indicates extract text type.|
28+
|outPositionRange|String|Query|Indicates the output location for the extracted text.|
2829
|beforeText|String|Query|Indicates extracting the text before the specified characters or substrings.|
2930
|afterText|String|Query|Indicates extracting the text after the specified characters or substrings.|
3031
|beforePosition|Integer|Query|Indicates retrieving the first character or a specified number of characters from the left side of the selected cell.|
3132
|afterPosition|Integer|Query|Indicates retrieving the first character or a specified number of characters from the right side of the selected cell.|
32-
|outPositionRange|String|Query|Indicates the output location for the extracted text.|
3333
|worksheet|String|Query|Specify the worksheet of spreadsheet.|
3434
|range|String|Query|Specify the worksheet range of spreadsheet.|
3535
|outPath|String|Query|(Optional) The folder path where the workbook is stored. The default is null.|

docs/api/RemoveCharacters.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# **Spreadsheet Cloud API: removeCharacters**
22

3-
Perform operations or delete any custom characters, character sets, and substrings within a selected range for a specific position.
3+
Deletes user-defined characters, predefined symbol sets, or any substring from every cell in the chosen range while preserving formulas, formatting and data-validation.
44

55

66
## **Quick Start**
@@ -17,20 +17,17 @@ Perform operations or delete any custom characters, character sets, and substrin
1717
PUT http://api.aspose.cloud/v4.0/cells/content/remove/characters
1818
```
1919
### **Function Description**
20-
RemoveCustomText performs precise, position-based or pattern-based deletion inside the supplied range while preserving formulas, formatting and data-validation.- Head / tail truncation: theFirstNCharacters and theLastNCharacters are mutually exclusive with text-boundary modes.- Boundary modes: allCharactersBeforeText and allCharactersAfterText delete everything up-to or after the supplied substring (first occurrence).- Character-sets: provide any Unicode run (e.g. "(){}-") or regex class; matching code-points are stripped, order is ignored.- Empty result is allowed; if every character is removed the cell becomes blank(empty string). - Numbers, booleans, errors are skipped; only string-type cell values are touched.- Returns the count of modified cells and the updated workbook stream.
20+
RemoveCustomText performs precise, position-based or pattern-based deletion inside the supplied range while preserving formulas, formatting and data-validation. **Removal modes** - `CustomChars` – delete each character supplied in `customCharacters` (case-insensitive by default) - `CharacterSet` – pick a built-in set: - `NonPrinting` – ASCII 0-31 + 127,129,141,143,144,157 (line-breaks, etc.) - `Text` – all letters A-Z / a-z - `Numeric` – all digits 0-9 - `Symbols` – math, geometric, technical, currency, letter-like symbols (?, ™, 1, …) - `Punctuation` – any punctuation mark - `Substring` – remove the entire substring specified in `substring` (case-sensitive option available) **Options** - `caseSensitive` – affects `Substring` mode and `CustomChars` when enabled - Empty result is allowed; if every character is removed the cell becomes blank(empty string). - Numbers, booleans, errors are skipped; only string-type cell values are touched.- Returns the count of modified cells and the updated workbook stream.
2121

2222
### The request parameters of **removeCharacters** API are:
2323

2424
| Parameter Name | Type | Path/Query String/HTTPBody | Description |
2525
| :- | :- | :- |:- |
2626
|Spreadsheet|File|FormData|Upload spreadsheet file.|
27-
|theFirstNCharacters|Integer|Query|Specify removing the first n characters from selected cells.|
28-
|theLastNCharacters|Integer|Query|Specify removing the last n characters from selected cells.|
29-
|allCharactersBeforeText|String|Query|Specify using targeted removal options to delete text that is located before certain characters.|
30-
|allCharactersAfterText|String|Query|Specify using targeted removal options to delete text that is located after certain characters.|
3127
|removeTextMethod|String|Query|Specify the removal of text method type.|
3228
|characterSets|String|Query|Specify the character sets.|
3329
|removeCustomValue|String|Query|Specify the remove custom value.|
30+
|caseSensitive|Boolean|Query||
3431
|worksheet|String|Query|Specify the worksheet of spreadsheet.|
3532
|range|String|Query|Specify the worksheet range of spreadsheet.|
3633
|outPath|String|Query|(Optional) The folder path where the workbook is stored. The default is null.|
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# **Spreadsheet Cloud API: removeCharactersByPosition**
2+
3+
Deletes characters from every cell in the target range by position (first/last N, before/after a substring, or between two delimiters) while preserving formulas, formatting and data-validation.
4+
5+
6+
## **Quick Start**
7+
8+
- **Base URL**: `http://api.aspose.cloud/v4.0`
9+
- **Authentication Method**: `JWT (OAuth2, application)` **Token URL**: `https://api.aspose.cloud/connect/token`
10+
- **Example**
11+
12+
## **Interface Details**
13+
14+
### **Endpoint**
15+
16+
```
17+
PUT http://api.aspose.cloud/v4.0/cells/content/remove/characters-by-position
18+
```
19+
### **Function Description**
20+
**Position modes** - `theFirstNCharacters` – remove N characters from the start - `LastN` – remove N characters from the end - `BeforeText` – delete everything before the first occurrence of the supplied substring - `AfterText` – delete everything after the first occurrence - `BetweenValues` – strip the substring (and optionally the delimiters themselves) between two user-defined values **Options** - `caseSensitive` – affects `BeforeText`, `AfterText` and `BetweenValues` searches - `includingDelimiters` – when `BetweenValues` is used, controls whether the two boundary values are also removed
21+
22+
### The request parameters of **removeCharactersByPosition** API are:
23+
24+
| Parameter Name | Type | Path/Query String/HTTPBody | Description |
25+
| :- | :- | :- |:- |
26+
|Spreadsheet|File|FormData|Upload spreadsheet file.|
27+
|theFirstNCharacters|Integer|Query|Specify removing the first n characters from selected cells.|
28+
|theLastNCharacters|Integer|Query|Specify removing the last n characters from selected cells.|
29+
|allCharactersBeforeText|String|Query|Specify using targeted removal options to delete text that is located before certain characters.|
30+
|allCharactersAfterText|String|Query|Specify using targeted removal options to delete text that is located after certain characters.|
31+
|caseSensitive|Boolean|Query||
32+
|worksheet|String|Query|Specify the worksheet of spreadsheet.|
33+
|range|String|Query|Specify the worksheet range of spreadsheet.|
34+
|outPath|String|Query|(Optional) The folder path where the workbook is stored. The default is null.|
35+
|outStorageName|String|Query|Output file Storage Name.|
36+
|region|String|Query|The spreadsheet region setting.|
37+
|password|String|Query|The password for opening spreadsheet file.|
38+
39+
### **Response Description**
40+
```json
41+
{
42+
File
43+
}
44+
```
45+
46+
47+
## OpenAPI Specification
48+
49+
The [OpenAPI Specification](https://reference.aspose.cloud/cells/#/TextProcessingController/RemoveCharactersByPosition) defines a publicly accessible programming interface and lets you carry out REST interactions directly from a web browser.
50+
51+
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# **Spreadsheet Cloud API: removeDuplicateSubstrings**
2+
3+
Finds and removes repeated substrings inside every cell of the chosen range, using user-defined or preset delimiters, while preserving formulas, formatting and data-validation.
4+
5+
6+
## **Quick Start**
7+
8+
- **Base URL**: `http://api.aspose.cloud/v4.0`
9+
- **Authentication Method**: `JWT (OAuth2, application)` **Token URL**: `https://api.aspose.cloud/connect/token`
10+
- **Example**
11+
12+
## **Interface Details**
13+
14+
### **Endpoint**
15+
16+
```
17+
PUT http://api.aspose.cloud/v4.0/cells/content/remove/duplicate-substrings
18+
```
19+
### **Function Description**
20+
**How duplicates are detected** 1. Each cell value is split into substrings by the chosen delimiter(s). 2. The tool compares substrings **within the same cell** and keeps only the **first occurrence** of each duplicate. 3. Cleaned substrings are re-joined with the same delimiter(s) and written back to the cell. **Delimiter options** - Preset list: comma, semicolon, space, tab, line-break - `Custom` – enter any character(s); multiple characters are treated as one composite delimiter - `TreatConsecutiveDelimitersAsOne` – collapse adjacent delimiters into a single separator **Search options** - `headerRows` – number of header rows to exclude from processing (default 1) - `caseSensitive` – if true, "AAA" and "aaa" are **not** duplicates - `backupWorksheet` – create a backup sheet named `#Sheet(1)` before removal Only string-type cells are processed; numbers, booleans and formulas are converted to string before splitting (formulas are dropped). Returns the count of cleaned cells and the updated workbook stream. The operation is idempotent and streaming-safe for files up to 500 MB.
21+
22+
### The request parameters of **removeDuplicateSubstrings** API are:
23+
24+
| Parameter Name | Type | Path/Query String/HTTPBody | Description |
25+
| :- | :- | :- |:- |
26+
|Spreadsheet|File|FormData|Upload spreadsheet file.|
27+
|delimiters|String|Query||
28+
|treatConsecutiveDelimitersAsOne|Boolean|Query||
29+
|caseSensitive|Boolean|Query||
30+
|worksheet|String|Query||
31+
|range|String|Query||
32+
|outPath|String|Query|(Optional) The folder path where the workbook is stored. The default is null.|
33+
|outStorageName|String|Query|Output file Storage Name.|
34+
|region|String|Query|The spreadsheet region setting.|
35+
|password|String|Query|The password for opening spreadsheet file.|
36+
37+
### **Response Description**
38+
```json
39+
{
40+
File
41+
}
42+
```
43+
44+
45+
## OpenAPI Specification
46+
47+
The [OpenAPI Specification](https://reference.aspose.cloud/cells/#/TextProcessingController/RemoveDuplicateSubstrings) defines a publicly accessible programming interface and lets you carry out REST interactions directly from a web browser.
48+
49+

docs/api/SearchBrokenLinksInRemoteRange.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Search broken links in the range of remoted spreadsheet.
1414
### **Endpoint**
1515

1616
```
17-
PUT http://api.aspose.cloud/v4.0/cells/{name}/worksheets/{worksheet}/ranges/{cellArea}search/broken-links
17+
PUT http://api.aspose.cloud/v4.0/cells/{name}/worksheets/{worksheet}/ranges/{cellArea}/search/broken-links
1818
```
1919
### **Function Description**
2020
This method searches for broken links within a range of spreadsheet file stored in remote cloud storage. It scans all sheets and cells to identify hyperlinks that no longer point to valid destinations, such as dead URLs or missing external references. The operation is performed remotely within the cloud environment, without requiring the file to be downloaded to the local machine. Ensure that you have valid cloud storage credentials and proper access permissions to the target file. If the source file cannot be accessed, if it contains unsupported formats, or if an error occurs during the scanning process, an appropriate exception will be thrown. Depending on the implementation, the method may return a list of broken links with details such as sheet name, cell coordinates, and the invalid URL. Users should carefully review the results to update or remove outdated links in the spreadsheet.## **Error Handling**- **400 Bad Request**: Invalid url.- **401 Unauthorized**: Authentication has failed, or no credentials were provided.- **404 Not Found**: Source file not accessible.- **500 Server Error** The spreadsheet has encountered an anomaly in obtaining data.## **Key Features and Benefits**- **Remote Scanning**: Searches for broken links within a specified range in a spreadsheet stored in cloud storage.- **Comprehensive Coverage**: Scans all sheets and cells within the defined range to identify invalid hyperlinks.

docs/api/SplitText.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ PUT http://api.aspose.cloud/v4.0/cells/content/split/text
2424
| Parameter Name | Type | Path/Query String/HTTPBody | Description |
2525
| :- | :- | :- |:- |
2626
|Spreadsheet|File|FormData|Upload spreadsheet file.|
27-
|splitDelimitersType|String|Query|Indicates split delimiters type.|
28-
|customDelimiter|String|Query|Indicates the custom delimiter.|
27+
|delimiters|String|Query|Indicates the custom delimiter.|
2928
|keepDelimitersInResultingCells|Boolean|Query|Indicates keep delimiters in resulting cells.|
3029
|keepDelimitersPosition|String|Query|Indicates keep delimiters position.|
3130
|HowToSplit|String|Query|Indicates|
31+
|outPositionRange|String|Query|Indicates split delimiters type.|
3232
|worksheet|String|Query|Specify the worksheet of spreadsheet.|
3333
|range|String|Query|Specify the worksheet range of spreadsheet.|
3434
|outPath|String|Query|(Optional) The folder path where the workbook is stored. The default is null.|

0 commit comments

Comments
 (0)