aspose-cells-foss 25.12.1__tar.gz → 26.2.2__tar.gz
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.
- aspose_cells_foss-26.2.2/PKG-INFO +190 -0
- aspose_cells_foss-26.2.2/README.md +159 -0
- aspose_cells_foss-26.2.2/aspose_cells/__init__.py +88 -0
- aspose_cells_foss-26.2.2/aspose_cells/auto_filter.py +527 -0
- aspose_cells_foss-26.2.2/aspose_cells/cell.py +483 -0
- aspose_cells_foss-26.2.2/aspose_cells/cell_value_handler.py +319 -0
- aspose_cells_foss-26.2.2/aspose_cells/cells.py +779 -0
- aspose_cells_foss-26.2.2/aspose_cells/cfb_handler.py +445 -0
- aspose_cells_foss-26.2.2/aspose_cells/cfb_writer.py +659 -0
- aspose_cells_foss-26.2.2/aspose_cells/cfb_writer_minimal.py +337 -0
- aspose_cells_foss-26.2.2/aspose_cells/comment_xml.py +475 -0
- aspose_cells_foss-26.2.2/aspose_cells/conditional_format.py +1185 -0
- aspose_cells_foss-26.2.2/aspose_cells/csv_handler.py +690 -0
- aspose_cells_foss-26.2.2/aspose_cells/data_validation.py +911 -0
- aspose_cells_foss-26.2.2/aspose_cells/document_properties.py +356 -0
- aspose_cells_foss-26.2.2/aspose_cells/encryption_crypto.py +247 -0
- aspose_cells_foss-26.2.2/aspose_cells/encryption_params.py +138 -0
- aspose_cells_foss-26.2.2/aspose_cells/hyperlink.py +372 -0
- aspose_cells_foss-26.2.2/aspose_cells/json_handler.py +185 -0
- aspose_cells_foss-26.2.2/aspose_cells/markdown_handler.py +583 -0
- aspose_cells_foss-26.2.2/aspose_cells/shared_strings.py +101 -0
- aspose_cells_foss-26.2.2/aspose_cells/style.py +841 -0
- aspose_cells_foss-26.2.2/aspose_cells/workbook.py +499 -0
- aspose_cells_foss-26.2.2/aspose_cells/workbook_hash_password.py +68 -0
- aspose_cells_foss-26.2.2/aspose_cells/workbook_properties.py +712 -0
- aspose_cells_foss-26.2.2/aspose_cells/worksheet.py +570 -0
- aspose_cells_foss-26.2.2/aspose_cells/worksheet_properties.py +1239 -0
- aspose_cells_foss-26.2.2/aspose_cells/xlsx_encryptor.py +403 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_autofilter_loader.py +195 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_autofilter_saver.py +173 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_conditional_format_loader.py +215 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_conditional_format_saver.py +351 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_datavalidation_loader.py +239 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_datavalidation_saver.py +245 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_hyperlink_handler.py +323 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_loader.py +986 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_properties_loader.py +512 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_properties_saver.py +607 -0
- aspose_cells_foss-26.2.2/aspose_cells/xml_saver.py +1306 -0
- aspose_cells_foss-26.2.2/aspose_cells_foss.egg-info/PKG-INFO +190 -0
- aspose_cells_foss-26.2.2/aspose_cells_foss.egg-info/SOURCES.txt +83 -0
- aspose_cells_foss-26.2.2/aspose_cells_foss.egg-info/requires.txt +6 -0
- aspose_cells_foss-26.2.2/aspose_cells_foss.egg-info/top_level.txt +1 -0
- aspose_cells_foss-26.2.2/pyproject.toml +52 -0
- aspose_cells_foss-26.2.2/tests/test_alignment_advanced_properties.py +213 -0
- aspose_cells_foss-26.2.2/tests/test_alignment_properties.py +593 -0
- aspose_cells_foss-26.2.2/tests/test_aspose_cells_empty_author.py +198 -0
- aspose_cells_foss-26.2.2/tests/test_auto_filter.py +477 -0
- aspose_cells_foss-26.2.2/tests/test_autofilter_ecma376_compliance.py +371 -0
- aspose_cells_foss-26.2.2/tests/test_b2_red_thin_border.py +110 -0
- aspose_cells_foss-26.2.2/tests/test_book1_to_csv.py +39 -0
- aspose_cells_foss-26.2.2/tests/test_border_settings.py +279 -0
- aspose_cells_foss-26.2.2/tests/test_cell_protection_locked.py +246 -0
- aspose_cells_foss-26.2.2/tests/test_cell_value_ecma376.py +452 -0
- aspose_cells_foss-26.2.2/tests/test_cell_values.py +219 -0
- aspose_cells_foss-26.2.2/tests/test_comment_size.py +178 -0
- aspose_cells_foss-26.2.2/tests/test_comments.py +371 -0
- aspose_cells_foss-26.2.2/tests/test_comments_roundtrip.py +146 -0
- aspose_cells_foss-26.2.2/tests/test_conditional_formatting.py +1004 -0
- aspose_cells_foss-26.2.2/tests/test_csv_import_export.py +1365 -0
- aspose_cells_foss-26.2.2/tests/test_data_validation.py +734 -0
- aspose_cells_foss-26.2.2/tests/test_document_properties.py +482 -0
- aspose_cells_foss-26.2.2/tests/test_encrypt_hello.py +67 -0
- aspose_cells_foss-26.2.2/tests/test_encryption.py +473 -0
- aspose_cells_foss-26.2.2/tests/test_fill_settings.py +350 -0
- aspose_cells_foss-26.2.2/tests/test_font_settings.py +254 -0
- aspose_cells_foss-26.2.2/tests/test_hyperlinks.py +601 -0
- aspose_cells_foss-26.2.2/tests/test_manure_tool_csv_export.py +56 -0
- aspose_cells_foss-26.2.2/tests/test_number_formats.py +617 -0
- aspose_cells_foss-26.2.2/tests/test_number_formats2.py +558 -0
- aspose_cells_foss-26.2.2/tests/test_openpyxl_empty_author.py +61 -0
- aspose_cells_foss-26.2.2/tests/test_shared_string_table.py +80 -0
- aspose_cells_foss-26.2.2/tests/test_shared_string_table_ecma376.py +416 -0
- aspose_cells_foss-26.2.2/tests/test_workbook_properties_persistence.py +405 -0
- aspose_cells_foss-26.2.2/tests/test_workbook_protection.py +292 -0
- aspose_cells_foss-26.2.2/tests/test_workbook_protection_ecma376.py +392 -0
- aspose_cells_foss-26.2.2/tests/test_worksheet_management.py +534 -0
- aspose_cells_foss-26.2.2/tests/test_worksheet_properties.py +502 -0
- aspose_cells_foss-26.2.2/tests/test_worksheet_properties_persistence.py +653 -0
- aspose_cells_foss-26.2.2/tests/test_worksheet_protection.py +224 -0
- aspose_cells_foss-26.2.2/tests/test_worksheet_protection_ecma376.py +333 -0
- aspose_cells_foss-26.2.2/tests/test_xlsx_to_json.py +168 -0
- aspose_cells_foss-26.2.2/tests/test_xlsx_to_markdown.py +539 -0
- aspose_cells_foss-25.12.1/PKG-INFO +0 -189
- aspose_cells_foss-25.12.1/README.md +0 -165
- aspose_cells_foss-25.12.1/aspose/__init__.py +0 -14
- aspose_cells_foss-25.12.1/aspose/cells/__init__.py +0 -31
- aspose_cells_foss-25.12.1/aspose/cells/cell.py +0 -350
- aspose_cells_foss-25.12.1/aspose/cells/constants.py +0 -44
- aspose_cells_foss-25.12.1/aspose/cells/converters/__init__.py +0 -13
- aspose_cells_foss-25.12.1/aspose/cells/converters/csv_converter.py +0 -55
- aspose_cells_foss-25.12.1/aspose/cells/converters/json_converter.py +0 -46
- aspose_cells_foss-25.12.1/aspose/cells/converters/markdown_converter.py +0 -453
- aspose_cells_foss-25.12.1/aspose/cells/drawing/__init__.py +0 -17
- aspose_cells_foss-25.12.1/aspose/cells/drawing/anchor.py +0 -172
- aspose_cells_foss-25.12.1/aspose/cells/drawing/collection.py +0 -233
- aspose_cells_foss-25.12.1/aspose/cells/drawing/image.py +0 -338
- aspose_cells_foss-25.12.1/aspose/cells/formats.py +0 -80
- aspose_cells_foss-25.12.1/aspose/cells/formula/__init__.py +0 -10
- aspose_cells_foss-25.12.1/aspose/cells/formula/evaluator.py +0 -360
- aspose_cells_foss-25.12.1/aspose/cells/formula/functions.py +0 -433
- aspose_cells_foss-25.12.1/aspose/cells/formula/tokenizer.py +0 -340
- aspose_cells_foss-25.12.1/aspose/cells/io/__init__.py +0 -27
- aspose_cells_foss-25.12.1/aspose/cells/io/csv/__init__.py +0 -8
- aspose_cells_foss-25.12.1/aspose/cells/io/csv/reader.py +0 -88
- aspose_cells_foss-25.12.1/aspose/cells/io/csv/writer.py +0 -98
- aspose_cells_foss-25.12.1/aspose/cells/io/factory.py +0 -138
- aspose_cells_foss-25.12.1/aspose/cells/io/interfaces.py +0 -48
- aspose_cells_foss-25.12.1/aspose/cells/io/json/__init__.py +0 -8
- aspose_cells_foss-25.12.1/aspose/cells/io/json/reader.py +0 -126
- aspose_cells_foss-25.12.1/aspose/cells/io/json/writer.py +0 -119
- aspose_cells_foss-25.12.1/aspose/cells/io/md/__init__.py +0 -8
- aspose_cells_foss-25.12.1/aspose/cells/io/md/reader.py +0 -161
- aspose_cells_foss-25.12.1/aspose/cells/io/md/writer.py +0 -334
- aspose_cells_foss-25.12.1/aspose/cells/io/models.py +0 -64
- aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/__init__.py +0 -9
- aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/constants.py +0 -312
- aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/image_writer.py +0 -311
- aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/reader.py +0 -284
- aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/writer.py +0 -931
- aspose_cells_foss-25.12.1/aspose/cells/plugins/__init__.py +0 -6
- aspose_cells_foss-25.12.1/aspose/cells/plugins/docling_backend/__init__.py +0 -7
- aspose_cells_foss-25.12.1/aspose/cells/plugins/docling_backend/backend.py +0 -535
- aspose_cells_foss-25.12.1/aspose/cells/plugins/markitdown_plugin/__init__.py +0 -15
- aspose_cells_foss-25.12.1/aspose/cells/plugins/markitdown_plugin/plugin.py +0 -128
- aspose_cells_foss-25.12.1/aspose/cells/range.py +0 -210
- aspose_cells_foss-25.12.1/aspose/cells/style.py +0 -287
- aspose_cells_foss-25.12.1/aspose/cells/utils/__init__.py +0 -54
- aspose_cells_foss-25.12.1/aspose/cells/utils/coordinates.py +0 -68
- aspose_cells_foss-25.12.1/aspose/cells/utils/exceptions.py +0 -43
- aspose_cells_foss-25.12.1/aspose/cells/utils/validation.py +0 -102
- aspose_cells_foss-25.12.1/aspose/cells/workbook.py +0 -352
- aspose_cells_foss-25.12.1/aspose/cells/worksheet.py +0 -670
- aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/PKG-INFO +0 -189
- aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/SOURCES.txt +0 -72
- aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/entry_points.txt +0 -2
- aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/requires.txt +0 -6
- aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/top_level.txt +0 -1
- aspose_cells_foss-25.12.1/pyproject.toml +0 -40
- aspose_cells_foss-25.12.1/tests/test_advanced_converters.py +0 -64
- aspose_cells_foss-25.12.1/tests/test_advanced_features.py +0 -639
- aspose_cells_foss-25.12.1/tests/test_comprehensive_core.py +0 -1009
- aspose_cells_foss-25.12.1/tests/test_comprehensive_formulas.py +0 -659
- aspose_cells_foss-25.12.1/tests/test_comprehensive_io.py +0 -777
- aspose_cells_foss-25.12.1/tests/test_comprehensive_workbook.py +0 -394
- aspose_cells_foss-25.12.1/tests/test_comprehensive_writers.py +0 -502
- aspose_cells_foss-25.12.1/tests/test_conversions.py +0 -415
- aspose_cells_foss-25.12.1/tests/test_docling_backend.py +0 -236
- aspose_cells_foss-25.12.1/tests/test_excel_generation.py +0 -260
- aspose_cells_foss-25.12.1/tests/test_image_operations.py +0 -493
- aspose_cells_foss-25.12.1/tests/test_io_modules.py +0 -273
- aspose_cells_foss-25.12.1/tests/test_markitdown_plugin.py +0 -176
- aspose_cells_foss-25.12.1/tests/test_range_and_style.py +0 -226
- aspose_cells_foss-25.12.1/tests/test_units.py +0 -414
- aspose_cells_foss-25.12.1/tests/test_utilities_and_edge_cases.py +0 -248
- {aspose_cells_foss-25.12.1 → aspose_cells_foss-26.2.2}/aspose_cells_foss.egg-info/dependency_links.txt +0 -0
- {aspose_cells_foss-25.12.1 → aspose_cells_foss-26.2.2}/setup.cfg +0 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aspose-cells-foss
|
|
3
|
+
Version: 26.2.2
|
|
4
|
+
Summary: A Python library for creating, reading, and modifying Excel files (.xlsx format)
|
|
5
|
+
Author: Aspose Cells FOSS Contributors
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/aspose-cells-foss/aspose-cells-python
|
|
8
|
+
Project-URL: Documentation, https://github.com/aspose-cells-foss/aspose-cells-python#readme
|
|
9
|
+
Project-URL: Repository, https://github.com/aspose-cells-foss/aspose-cells-python.git
|
|
10
|
+
Project-URL: Issues, https://github.com/aspose-cells-foss/aspose-cells-python/issues
|
|
11
|
+
Keywords: excel,xlsx,spreadsheet,aspose,cells
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
|
+
Requires-Python: >=3.7
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
Requires-Dist: pycryptodome>=3.15.0
|
|
27
|
+
Requires-Dist: olefile>=0.46
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
31
|
+
|
|
32
|
+
# Aspose.Cells for Python
|
|
33
|
+
|
|
34
|
+
A lightweight Python library for creating, reading, and modifying Excel files (.xlsx format) without requiring Microsoft Excel.
|
|
35
|
+
|
|
36
|
+
[](https://badge.fury.io/py/aspose-cells-for-python)
|
|
37
|
+
[](https://pypi.org/project/aspose-cells-for-python/)
|
|
38
|
+
[](https://opensource.org/licenses/MIT)
|
|
39
|
+
|
|
40
|
+
## Features
|
|
41
|
+
|
|
42
|
+
- **Create & Edit Excel Files**: Create new workbooks or modify existing .xlsx files
|
|
43
|
+
- **Cell Operations**: Read/write cell values, formulas, and apply formatting
|
|
44
|
+
- **Styling**: Apply fonts, colors, borders, number formats, and alignment
|
|
45
|
+
- **Multiple Worksheets**: Add, remove, and manage worksheets
|
|
46
|
+
- **Data Validation**: Add dropdown lists, number ranges, and custom validation rules
|
|
47
|
+
- **Comments**: Add and manage cell comments with author and rich text
|
|
48
|
+
- **Hyperlinks**: Create links to URLs, emails, files, and internal references
|
|
49
|
+
- **Auto-Filters**: Apply filtering to data ranges
|
|
50
|
+
- **Conditional Formatting**: Apply rules-based formatting
|
|
51
|
+
- **CSV/JSON/Markdown Export**: Save workbooks in multiple formats
|
|
52
|
+
- **Encryption**: Password-protect Excel files with AES encryption
|
|
53
|
+
- **Workbook Protection**: Protect workbook structure and worksheets
|
|
54
|
+
|
|
55
|
+
## Installation
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pip install aspose-cells-for-python
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Quick Start
|
|
62
|
+
|
|
63
|
+
### Create a new Excel file
|
|
64
|
+
|
|
65
|
+
```python
|
|
66
|
+
from aspose_cells import Workbook
|
|
67
|
+
|
|
68
|
+
# Create a new workbook
|
|
69
|
+
workbook = Workbook()
|
|
70
|
+
|
|
71
|
+
# Get the first worksheet
|
|
72
|
+
worksheet = workbook.worksheets[0]
|
|
73
|
+
|
|
74
|
+
# Set cell values
|
|
75
|
+
worksheet.cells["A1"].put_value("Hello")
|
|
76
|
+
worksheet.cells["B1"].put_value("World")
|
|
77
|
+
worksheet.cells["A2"].put_value(42)
|
|
78
|
+
worksheet.cells["B2"].put_value(3.14)
|
|
79
|
+
|
|
80
|
+
# Save the workbook
|
|
81
|
+
workbook.save("output.xlsx")
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Read an existing Excel file
|
|
85
|
+
|
|
86
|
+
```python
|
|
87
|
+
from aspose_cells import Workbook
|
|
88
|
+
|
|
89
|
+
# Open an existing workbook
|
|
90
|
+
workbook = Workbook("input.xlsx")
|
|
91
|
+
|
|
92
|
+
# Access a worksheet
|
|
93
|
+
worksheet = workbook.worksheets[0]
|
|
94
|
+
|
|
95
|
+
# Read cell values
|
|
96
|
+
value = worksheet.cells["A1"].value
|
|
97
|
+
print(f"Cell A1 contains: {value}")
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Apply styling
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
from aspose_cells import Workbook
|
|
104
|
+
|
|
105
|
+
workbook = Workbook()
|
|
106
|
+
worksheet = workbook.worksheets[0]
|
|
107
|
+
cell = worksheet.cells["A1"]
|
|
108
|
+
|
|
109
|
+
cell.put_value("Styled Text")
|
|
110
|
+
|
|
111
|
+
# Get and modify the cell style
|
|
112
|
+
style = cell.get_style()
|
|
113
|
+
style.font.is_bold = True
|
|
114
|
+
style.font.color = "FF0000" # Red
|
|
115
|
+
style.font.size = 14
|
|
116
|
+
cell.set_style(style)
|
|
117
|
+
|
|
118
|
+
workbook.save("styled.xlsx")
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Add data validation (dropdown list)
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
from aspose_cells import Workbook, DataValidationType
|
|
125
|
+
|
|
126
|
+
workbook = Workbook()
|
|
127
|
+
worksheet = workbook.worksheets[0]
|
|
128
|
+
|
|
129
|
+
# Add a dropdown list validation
|
|
130
|
+
validation = worksheet.data_validations.add()
|
|
131
|
+
validation.type = DataValidationType.LIST
|
|
132
|
+
validation.formula1 = '"Option1,Option2,Option3"'
|
|
133
|
+
validation.add_area("A1:A10")
|
|
134
|
+
|
|
135
|
+
workbook.save("validation.xlsx")
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Export to CSV
|
|
139
|
+
|
|
140
|
+
```python
|
|
141
|
+
from aspose_cells import Workbook, SaveFormat
|
|
142
|
+
|
|
143
|
+
workbook = Workbook("input.xlsx")
|
|
144
|
+
workbook.save("output.csv", SaveFormat.CSV)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Password protection
|
|
148
|
+
|
|
149
|
+
```python
|
|
150
|
+
from aspose_cells import Workbook
|
|
151
|
+
|
|
152
|
+
workbook = Workbook()
|
|
153
|
+
worksheet = workbook.worksheets[0]
|
|
154
|
+
worksheet.cells["A1"].put_value("Confidential Data")
|
|
155
|
+
|
|
156
|
+
# Save with password protection
|
|
157
|
+
workbook.save("protected.xlsx", password="mypassword")
|
|
158
|
+
|
|
159
|
+
# Open a password-protected file
|
|
160
|
+
workbook2 = Workbook("protected.xlsx", password="mypassword")
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Requirements
|
|
164
|
+
|
|
165
|
+
- Python 3.7 or higher
|
|
166
|
+
- pycryptodome >= 3.15.0
|
|
167
|
+
- olefile >= 0.46
|
|
168
|
+
|
|
169
|
+
## Documentation
|
|
170
|
+
|
|
171
|
+
For more examples and detailed API documentation, see the [tests](tests/) directory.
|
|
172
|
+
|
|
173
|
+
## Contributing
|
|
174
|
+
|
|
175
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
176
|
+
|
|
177
|
+
1. Fork the repository
|
|
178
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
179
|
+
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
|
180
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
181
|
+
5. Open a Pull Request
|
|
182
|
+
|
|
183
|
+
## License
|
|
184
|
+
|
|
185
|
+
This project is licensed under the MIT License - see the [LICENSE](License/Aspose_Split-License-Agreement_2026-01-26_WIP.txt) file for details.
|
|
186
|
+
|
|
187
|
+
## Support
|
|
188
|
+
|
|
189
|
+
- **Issues**: [GitHub Issues](https://github.com/aspose-cells-foss/aspose-cells-python/issues)
|
|
190
|
+
- **Discussions**: [GitHub Discussions](https://github.com/aspose-cells-foss/aspose-cells-python/discussions)
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Aspose.Cells for Python
|
|
2
|
+
|
|
3
|
+
A lightweight Python library for creating, reading, and modifying Excel files (.xlsx format) without requiring Microsoft Excel.
|
|
4
|
+
|
|
5
|
+
[](https://badge.fury.io/py/aspose-cells-for-python)
|
|
6
|
+
[](https://pypi.org/project/aspose-cells-for-python/)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- **Create & Edit Excel Files**: Create new workbooks or modify existing .xlsx files
|
|
12
|
+
- **Cell Operations**: Read/write cell values, formulas, and apply formatting
|
|
13
|
+
- **Styling**: Apply fonts, colors, borders, number formats, and alignment
|
|
14
|
+
- **Multiple Worksheets**: Add, remove, and manage worksheets
|
|
15
|
+
- **Data Validation**: Add dropdown lists, number ranges, and custom validation rules
|
|
16
|
+
- **Comments**: Add and manage cell comments with author and rich text
|
|
17
|
+
- **Hyperlinks**: Create links to URLs, emails, files, and internal references
|
|
18
|
+
- **Auto-Filters**: Apply filtering to data ranges
|
|
19
|
+
- **Conditional Formatting**: Apply rules-based formatting
|
|
20
|
+
- **CSV/JSON/Markdown Export**: Save workbooks in multiple formats
|
|
21
|
+
- **Encryption**: Password-protect Excel files with AES encryption
|
|
22
|
+
- **Workbook Protection**: Protect workbook structure and worksheets
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pip install aspose-cells-for-python
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Quick Start
|
|
31
|
+
|
|
32
|
+
### Create a new Excel file
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
from aspose_cells import Workbook
|
|
36
|
+
|
|
37
|
+
# Create a new workbook
|
|
38
|
+
workbook = Workbook()
|
|
39
|
+
|
|
40
|
+
# Get the first worksheet
|
|
41
|
+
worksheet = workbook.worksheets[0]
|
|
42
|
+
|
|
43
|
+
# Set cell values
|
|
44
|
+
worksheet.cells["A1"].put_value("Hello")
|
|
45
|
+
worksheet.cells["B1"].put_value("World")
|
|
46
|
+
worksheet.cells["A2"].put_value(42)
|
|
47
|
+
worksheet.cells["B2"].put_value(3.14)
|
|
48
|
+
|
|
49
|
+
# Save the workbook
|
|
50
|
+
workbook.save("output.xlsx")
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Read an existing Excel file
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
from aspose_cells import Workbook
|
|
57
|
+
|
|
58
|
+
# Open an existing workbook
|
|
59
|
+
workbook = Workbook("input.xlsx")
|
|
60
|
+
|
|
61
|
+
# Access a worksheet
|
|
62
|
+
worksheet = workbook.worksheets[0]
|
|
63
|
+
|
|
64
|
+
# Read cell values
|
|
65
|
+
value = worksheet.cells["A1"].value
|
|
66
|
+
print(f"Cell A1 contains: {value}")
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Apply styling
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
from aspose_cells import Workbook
|
|
73
|
+
|
|
74
|
+
workbook = Workbook()
|
|
75
|
+
worksheet = workbook.worksheets[0]
|
|
76
|
+
cell = worksheet.cells["A1"]
|
|
77
|
+
|
|
78
|
+
cell.put_value("Styled Text")
|
|
79
|
+
|
|
80
|
+
# Get and modify the cell style
|
|
81
|
+
style = cell.get_style()
|
|
82
|
+
style.font.is_bold = True
|
|
83
|
+
style.font.color = "FF0000" # Red
|
|
84
|
+
style.font.size = 14
|
|
85
|
+
cell.set_style(style)
|
|
86
|
+
|
|
87
|
+
workbook.save("styled.xlsx")
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Add data validation (dropdown list)
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
from aspose_cells import Workbook, DataValidationType
|
|
94
|
+
|
|
95
|
+
workbook = Workbook()
|
|
96
|
+
worksheet = workbook.worksheets[0]
|
|
97
|
+
|
|
98
|
+
# Add a dropdown list validation
|
|
99
|
+
validation = worksheet.data_validations.add()
|
|
100
|
+
validation.type = DataValidationType.LIST
|
|
101
|
+
validation.formula1 = '"Option1,Option2,Option3"'
|
|
102
|
+
validation.add_area("A1:A10")
|
|
103
|
+
|
|
104
|
+
workbook.save("validation.xlsx")
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Export to CSV
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
from aspose_cells import Workbook, SaveFormat
|
|
111
|
+
|
|
112
|
+
workbook = Workbook("input.xlsx")
|
|
113
|
+
workbook.save("output.csv", SaveFormat.CSV)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Password protection
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
from aspose_cells import Workbook
|
|
120
|
+
|
|
121
|
+
workbook = Workbook()
|
|
122
|
+
worksheet = workbook.worksheets[0]
|
|
123
|
+
worksheet.cells["A1"].put_value("Confidential Data")
|
|
124
|
+
|
|
125
|
+
# Save with password protection
|
|
126
|
+
workbook.save("protected.xlsx", password="mypassword")
|
|
127
|
+
|
|
128
|
+
# Open a password-protected file
|
|
129
|
+
workbook2 = Workbook("protected.xlsx", password="mypassword")
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Requirements
|
|
133
|
+
|
|
134
|
+
- Python 3.7 or higher
|
|
135
|
+
- pycryptodome >= 3.15.0
|
|
136
|
+
- olefile >= 0.46
|
|
137
|
+
|
|
138
|
+
## Documentation
|
|
139
|
+
|
|
140
|
+
For more examples and detailed API documentation, see the [tests](tests/) directory.
|
|
141
|
+
|
|
142
|
+
## Contributing
|
|
143
|
+
|
|
144
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
145
|
+
|
|
146
|
+
1. Fork the repository
|
|
147
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
148
|
+
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
|
149
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
150
|
+
5. Open a Pull Request
|
|
151
|
+
|
|
152
|
+
## License
|
|
153
|
+
|
|
154
|
+
This project is licensed under the MIT License - see the [LICENSE](License/Aspose_Split-License-Agreement_2026-01-26_WIP.txt) file for details.
|
|
155
|
+
|
|
156
|
+
## Support
|
|
157
|
+
|
|
158
|
+
- **Issues**: [GitHub Issues](https://github.com/aspose-cells-foss/aspose-cells-python/issues)
|
|
159
|
+
- **Discussions**: [GitHub Discussions](https://github.com/aspose-cells-foss/aspose-cells-python/discussions)
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Aspose.Cells for Python
|
|
3
|
+
|
|
4
|
+
A Python library for creating, reading, and modifying Excel files (.xlsx format).
|
|
5
|
+
This library provides a simple API compatible with Aspose.Cells for .NET structure.
|
|
6
|
+
|
|
7
|
+
Main Classes:
|
|
8
|
+
- Workbook: Represents an Excel workbook
|
|
9
|
+
- Worksheet: Represents a worksheet within a workbook
|
|
10
|
+
- Cell: Represents a single cell
|
|
11
|
+
- Cells: Collection of cells in a worksheet
|
|
12
|
+
- Style: Represents cell formatting styles
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from .workbook import Workbook, SaveFormat
|
|
16
|
+
from .worksheet import Worksheet
|
|
17
|
+
from .cell import Cell
|
|
18
|
+
from .cells import Cells
|
|
19
|
+
from .style import Style, Font, NumberFormat
|
|
20
|
+
from .encryption_params import (
|
|
21
|
+
AgileEncryptionParameters,
|
|
22
|
+
StandardEncryptionParameters,
|
|
23
|
+
CipherAlgorithm,
|
|
24
|
+
HashAlgorithm,
|
|
25
|
+
get_default_encryption_params
|
|
26
|
+
)
|
|
27
|
+
from .xlsx_encryptor import encrypt_xlsx, decrypt_xlsx
|
|
28
|
+
from .data_validation import (
|
|
29
|
+
DataValidation,
|
|
30
|
+
DataValidationCollection,
|
|
31
|
+
DataValidationType,
|
|
32
|
+
DataValidationOperator,
|
|
33
|
+
DataValidationAlertStyle,
|
|
34
|
+
DataValidationImeMode
|
|
35
|
+
)
|
|
36
|
+
from .csv_handler import (
|
|
37
|
+
CSVHandler,
|
|
38
|
+
CSVLoadOptions,
|
|
39
|
+
CSVSaveOptions,
|
|
40
|
+
load_csv_workbook,
|
|
41
|
+
save_workbook_as_csv
|
|
42
|
+
)
|
|
43
|
+
from .markdown_handler import (
|
|
44
|
+
MarkdownHandler,
|
|
45
|
+
MarkdownSaveOptions,
|
|
46
|
+
save_workbook_as_markdown
|
|
47
|
+
)
|
|
48
|
+
from .json_handler import (
|
|
49
|
+
JsonHandler,
|
|
50
|
+
JsonSaveOptions,
|
|
51
|
+
save_workbook_as_json
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
__version__ = "26.2.2"
|
|
55
|
+
__all__ = [
|
|
56
|
+
"Workbook",
|
|
57
|
+
"SaveFormat",
|
|
58
|
+
"Worksheet",
|
|
59
|
+
"Cell",
|
|
60
|
+
"Cells",
|
|
61
|
+
"Style",
|
|
62
|
+
"Font",
|
|
63
|
+
"NumberFormat",
|
|
64
|
+
"AgileEncryptionParameters",
|
|
65
|
+
"StandardEncryptionParameters",
|
|
66
|
+
"CipherAlgorithm",
|
|
67
|
+
"HashAlgorithm",
|
|
68
|
+
"get_default_encryption_params",
|
|
69
|
+
"encrypt_xlsx",
|
|
70
|
+
"decrypt_xlsx",
|
|
71
|
+
"DataValidation",
|
|
72
|
+
"DataValidationCollection",
|
|
73
|
+
"DataValidationType",
|
|
74
|
+
"DataValidationOperator",
|
|
75
|
+
"DataValidationAlertStyle",
|
|
76
|
+
"DataValidationImeMode",
|
|
77
|
+
"CSVHandler",
|
|
78
|
+
"CSVLoadOptions",
|
|
79
|
+
"CSVSaveOptions",
|
|
80
|
+
"load_csv_workbook",
|
|
81
|
+
"save_workbook_as_csv",
|
|
82
|
+
"MarkdownHandler",
|
|
83
|
+
"MarkdownSaveOptions",
|
|
84
|
+
"save_workbook_as_markdown",
|
|
85
|
+
"JsonHandler",
|
|
86
|
+
"JsonSaveOptions",
|
|
87
|
+
"save_workbook_as_json",
|
|
88
|
+
]
|