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.
Files changed (157) hide show
  1. aspose_cells_foss-26.2.2/PKG-INFO +190 -0
  2. aspose_cells_foss-26.2.2/README.md +159 -0
  3. aspose_cells_foss-26.2.2/aspose_cells/__init__.py +88 -0
  4. aspose_cells_foss-26.2.2/aspose_cells/auto_filter.py +527 -0
  5. aspose_cells_foss-26.2.2/aspose_cells/cell.py +483 -0
  6. aspose_cells_foss-26.2.2/aspose_cells/cell_value_handler.py +319 -0
  7. aspose_cells_foss-26.2.2/aspose_cells/cells.py +779 -0
  8. aspose_cells_foss-26.2.2/aspose_cells/cfb_handler.py +445 -0
  9. aspose_cells_foss-26.2.2/aspose_cells/cfb_writer.py +659 -0
  10. aspose_cells_foss-26.2.2/aspose_cells/cfb_writer_minimal.py +337 -0
  11. aspose_cells_foss-26.2.2/aspose_cells/comment_xml.py +475 -0
  12. aspose_cells_foss-26.2.2/aspose_cells/conditional_format.py +1185 -0
  13. aspose_cells_foss-26.2.2/aspose_cells/csv_handler.py +690 -0
  14. aspose_cells_foss-26.2.2/aspose_cells/data_validation.py +911 -0
  15. aspose_cells_foss-26.2.2/aspose_cells/document_properties.py +356 -0
  16. aspose_cells_foss-26.2.2/aspose_cells/encryption_crypto.py +247 -0
  17. aspose_cells_foss-26.2.2/aspose_cells/encryption_params.py +138 -0
  18. aspose_cells_foss-26.2.2/aspose_cells/hyperlink.py +372 -0
  19. aspose_cells_foss-26.2.2/aspose_cells/json_handler.py +185 -0
  20. aspose_cells_foss-26.2.2/aspose_cells/markdown_handler.py +583 -0
  21. aspose_cells_foss-26.2.2/aspose_cells/shared_strings.py +101 -0
  22. aspose_cells_foss-26.2.2/aspose_cells/style.py +841 -0
  23. aspose_cells_foss-26.2.2/aspose_cells/workbook.py +499 -0
  24. aspose_cells_foss-26.2.2/aspose_cells/workbook_hash_password.py +68 -0
  25. aspose_cells_foss-26.2.2/aspose_cells/workbook_properties.py +712 -0
  26. aspose_cells_foss-26.2.2/aspose_cells/worksheet.py +570 -0
  27. aspose_cells_foss-26.2.2/aspose_cells/worksheet_properties.py +1239 -0
  28. aspose_cells_foss-26.2.2/aspose_cells/xlsx_encryptor.py +403 -0
  29. aspose_cells_foss-26.2.2/aspose_cells/xml_autofilter_loader.py +195 -0
  30. aspose_cells_foss-26.2.2/aspose_cells/xml_autofilter_saver.py +173 -0
  31. aspose_cells_foss-26.2.2/aspose_cells/xml_conditional_format_loader.py +215 -0
  32. aspose_cells_foss-26.2.2/aspose_cells/xml_conditional_format_saver.py +351 -0
  33. aspose_cells_foss-26.2.2/aspose_cells/xml_datavalidation_loader.py +239 -0
  34. aspose_cells_foss-26.2.2/aspose_cells/xml_datavalidation_saver.py +245 -0
  35. aspose_cells_foss-26.2.2/aspose_cells/xml_hyperlink_handler.py +323 -0
  36. aspose_cells_foss-26.2.2/aspose_cells/xml_loader.py +986 -0
  37. aspose_cells_foss-26.2.2/aspose_cells/xml_properties_loader.py +512 -0
  38. aspose_cells_foss-26.2.2/aspose_cells/xml_properties_saver.py +607 -0
  39. aspose_cells_foss-26.2.2/aspose_cells/xml_saver.py +1306 -0
  40. aspose_cells_foss-26.2.2/aspose_cells_foss.egg-info/PKG-INFO +190 -0
  41. aspose_cells_foss-26.2.2/aspose_cells_foss.egg-info/SOURCES.txt +83 -0
  42. aspose_cells_foss-26.2.2/aspose_cells_foss.egg-info/requires.txt +6 -0
  43. aspose_cells_foss-26.2.2/aspose_cells_foss.egg-info/top_level.txt +1 -0
  44. aspose_cells_foss-26.2.2/pyproject.toml +52 -0
  45. aspose_cells_foss-26.2.2/tests/test_alignment_advanced_properties.py +213 -0
  46. aspose_cells_foss-26.2.2/tests/test_alignment_properties.py +593 -0
  47. aspose_cells_foss-26.2.2/tests/test_aspose_cells_empty_author.py +198 -0
  48. aspose_cells_foss-26.2.2/tests/test_auto_filter.py +477 -0
  49. aspose_cells_foss-26.2.2/tests/test_autofilter_ecma376_compliance.py +371 -0
  50. aspose_cells_foss-26.2.2/tests/test_b2_red_thin_border.py +110 -0
  51. aspose_cells_foss-26.2.2/tests/test_book1_to_csv.py +39 -0
  52. aspose_cells_foss-26.2.2/tests/test_border_settings.py +279 -0
  53. aspose_cells_foss-26.2.2/tests/test_cell_protection_locked.py +246 -0
  54. aspose_cells_foss-26.2.2/tests/test_cell_value_ecma376.py +452 -0
  55. aspose_cells_foss-26.2.2/tests/test_cell_values.py +219 -0
  56. aspose_cells_foss-26.2.2/tests/test_comment_size.py +178 -0
  57. aspose_cells_foss-26.2.2/tests/test_comments.py +371 -0
  58. aspose_cells_foss-26.2.2/tests/test_comments_roundtrip.py +146 -0
  59. aspose_cells_foss-26.2.2/tests/test_conditional_formatting.py +1004 -0
  60. aspose_cells_foss-26.2.2/tests/test_csv_import_export.py +1365 -0
  61. aspose_cells_foss-26.2.2/tests/test_data_validation.py +734 -0
  62. aspose_cells_foss-26.2.2/tests/test_document_properties.py +482 -0
  63. aspose_cells_foss-26.2.2/tests/test_encrypt_hello.py +67 -0
  64. aspose_cells_foss-26.2.2/tests/test_encryption.py +473 -0
  65. aspose_cells_foss-26.2.2/tests/test_fill_settings.py +350 -0
  66. aspose_cells_foss-26.2.2/tests/test_font_settings.py +254 -0
  67. aspose_cells_foss-26.2.2/tests/test_hyperlinks.py +601 -0
  68. aspose_cells_foss-26.2.2/tests/test_manure_tool_csv_export.py +56 -0
  69. aspose_cells_foss-26.2.2/tests/test_number_formats.py +617 -0
  70. aspose_cells_foss-26.2.2/tests/test_number_formats2.py +558 -0
  71. aspose_cells_foss-26.2.2/tests/test_openpyxl_empty_author.py +61 -0
  72. aspose_cells_foss-26.2.2/tests/test_shared_string_table.py +80 -0
  73. aspose_cells_foss-26.2.2/tests/test_shared_string_table_ecma376.py +416 -0
  74. aspose_cells_foss-26.2.2/tests/test_workbook_properties_persistence.py +405 -0
  75. aspose_cells_foss-26.2.2/tests/test_workbook_protection.py +292 -0
  76. aspose_cells_foss-26.2.2/tests/test_workbook_protection_ecma376.py +392 -0
  77. aspose_cells_foss-26.2.2/tests/test_worksheet_management.py +534 -0
  78. aspose_cells_foss-26.2.2/tests/test_worksheet_properties.py +502 -0
  79. aspose_cells_foss-26.2.2/tests/test_worksheet_properties_persistence.py +653 -0
  80. aspose_cells_foss-26.2.2/tests/test_worksheet_protection.py +224 -0
  81. aspose_cells_foss-26.2.2/tests/test_worksheet_protection_ecma376.py +333 -0
  82. aspose_cells_foss-26.2.2/tests/test_xlsx_to_json.py +168 -0
  83. aspose_cells_foss-26.2.2/tests/test_xlsx_to_markdown.py +539 -0
  84. aspose_cells_foss-25.12.1/PKG-INFO +0 -189
  85. aspose_cells_foss-25.12.1/README.md +0 -165
  86. aspose_cells_foss-25.12.1/aspose/__init__.py +0 -14
  87. aspose_cells_foss-25.12.1/aspose/cells/__init__.py +0 -31
  88. aspose_cells_foss-25.12.1/aspose/cells/cell.py +0 -350
  89. aspose_cells_foss-25.12.1/aspose/cells/constants.py +0 -44
  90. aspose_cells_foss-25.12.1/aspose/cells/converters/__init__.py +0 -13
  91. aspose_cells_foss-25.12.1/aspose/cells/converters/csv_converter.py +0 -55
  92. aspose_cells_foss-25.12.1/aspose/cells/converters/json_converter.py +0 -46
  93. aspose_cells_foss-25.12.1/aspose/cells/converters/markdown_converter.py +0 -453
  94. aspose_cells_foss-25.12.1/aspose/cells/drawing/__init__.py +0 -17
  95. aspose_cells_foss-25.12.1/aspose/cells/drawing/anchor.py +0 -172
  96. aspose_cells_foss-25.12.1/aspose/cells/drawing/collection.py +0 -233
  97. aspose_cells_foss-25.12.1/aspose/cells/drawing/image.py +0 -338
  98. aspose_cells_foss-25.12.1/aspose/cells/formats.py +0 -80
  99. aspose_cells_foss-25.12.1/aspose/cells/formula/__init__.py +0 -10
  100. aspose_cells_foss-25.12.1/aspose/cells/formula/evaluator.py +0 -360
  101. aspose_cells_foss-25.12.1/aspose/cells/formula/functions.py +0 -433
  102. aspose_cells_foss-25.12.1/aspose/cells/formula/tokenizer.py +0 -340
  103. aspose_cells_foss-25.12.1/aspose/cells/io/__init__.py +0 -27
  104. aspose_cells_foss-25.12.1/aspose/cells/io/csv/__init__.py +0 -8
  105. aspose_cells_foss-25.12.1/aspose/cells/io/csv/reader.py +0 -88
  106. aspose_cells_foss-25.12.1/aspose/cells/io/csv/writer.py +0 -98
  107. aspose_cells_foss-25.12.1/aspose/cells/io/factory.py +0 -138
  108. aspose_cells_foss-25.12.1/aspose/cells/io/interfaces.py +0 -48
  109. aspose_cells_foss-25.12.1/aspose/cells/io/json/__init__.py +0 -8
  110. aspose_cells_foss-25.12.1/aspose/cells/io/json/reader.py +0 -126
  111. aspose_cells_foss-25.12.1/aspose/cells/io/json/writer.py +0 -119
  112. aspose_cells_foss-25.12.1/aspose/cells/io/md/__init__.py +0 -8
  113. aspose_cells_foss-25.12.1/aspose/cells/io/md/reader.py +0 -161
  114. aspose_cells_foss-25.12.1/aspose/cells/io/md/writer.py +0 -334
  115. aspose_cells_foss-25.12.1/aspose/cells/io/models.py +0 -64
  116. aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/__init__.py +0 -9
  117. aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/constants.py +0 -312
  118. aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/image_writer.py +0 -311
  119. aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/reader.py +0 -284
  120. aspose_cells_foss-25.12.1/aspose/cells/io/xlsx/writer.py +0 -931
  121. aspose_cells_foss-25.12.1/aspose/cells/plugins/__init__.py +0 -6
  122. aspose_cells_foss-25.12.1/aspose/cells/plugins/docling_backend/__init__.py +0 -7
  123. aspose_cells_foss-25.12.1/aspose/cells/plugins/docling_backend/backend.py +0 -535
  124. aspose_cells_foss-25.12.1/aspose/cells/plugins/markitdown_plugin/__init__.py +0 -15
  125. aspose_cells_foss-25.12.1/aspose/cells/plugins/markitdown_plugin/plugin.py +0 -128
  126. aspose_cells_foss-25.12.1/aspose/cells/range.py +0 -210
  127. aspose_cells_foss-25.12.1/aspose/cells/style.py +0 -287
  128. aspose_cells_foss-25.12.1/aspose/cells/utils/__init__.py +0 -54
  129. aspose_cells_foss-25.12.1/aspose/cells/utils/coordinates.py +0 -68
  130. aspose_cells_foss-25.12.1/aspose/cells/utils/exceptions.py +0 -43
  131. aspose_cells_foss-25.12.1/aspose/cells/utils/validation.py +0 -102
  132. aspose_cells_foss-25.12.1/aspose/cells/workbook.py +0 -352
  133. aspose_cells_foss-25.12.1/aspose/cells/worksheet.py +0 -670
  134. aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/PKG-INFO +0 -189
  135. aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/SOURCES.txt +0 -72
  136. aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/entry_points.txt +0 -2
  137. aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/requires.txt +0 -6
  138. aspose_cells_foss-25.12.1/aspose_cells_foss.egg-info/top_level.txt +0 -1
  139. aspose_cells_foss-25.12.1/pyproject.toml +0 -40
  140. aspose_cells_foss-25.12.1/tests/test_advanced_converters.py +0 -64
  141. aspose_cells_foss-25.12.1/tests/test_advanced_features.py +0 -639
  142. aspose_cells_foss-25.12.1/tests/test_comprehensive_core.py +0 -1009
  143. aspose_cells_foss-25.12.1/tests/test_comprehensive_formulas.py +0 -659
  144. aspose_cells_foss-25.12.1/tests/test_comprehensive_io.py +0 -777
  145. aspose_cells_foss-25.12.1/tests/test_comprehensive_workbook.py +0 -394
  146. aspose_cells_foss-25.12.1/tests/test_comprehensive_writers.py +0 -502
  147. aspose_cells_foss-25.12.1/tests/test_conversions.py +0 -415
  148. aspose_cells_foss-25.12.1/tests/test_docling_backend.py +0 -236
  149. aspose_cells_foss-25.12.1/tests/test_excel_generation.py +0 -260
  150. aspose_cells_foss-25.12.1/tests/test_image_operations.py +0 -493
  151. aspose_cells_foss-25.12.1/tests/test_io_modules.py +0 -273
  152. aspose_cells_foss-25.12.1/tests/test_markitdown_plugin.py +0 -176
  153. aspose_cells_foss-25.12.1/tests/test_range_and_style.py +0 -226
  154. aspose_cells_foss-25.12.1/tests/test_units.py +0 -414
  155. aspose_cells_foss-25.12.1/tests/test_utilities_and_edge_cases.py +0 -248
  156. {aspose_cells_foss-25.12.1 → aspose_cells_foss-26.2.2}/aspose_cells_foss.egg-info/dependency_links.txt +0 -0
  157. {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
+ [![PyPI version](https://badge.fury.io/py/aspose-cells-for-python.svg)](https://badge.fury.io/py/aspose-cells-for-python)
37
+ [![Python](https://img.shields.io/pypi/pyversions/aspose-cells-for-python.svg)](https://pypi.org/project/aspose-cells-for-python/)
38
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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
+ [![PyPI version](https://badge.fury.io/py/aspose-cells-for-python.svg)](https://badge.fury.io/py/aspose-cells-for-python)
6
+ [![Python](https://img.shields.io/pypi/pyversions/aspose-cells-for-python.svg)](https://pypi.org/project/aspose-cells-for-python/)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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
+ ]