ExcelAlchemy, a Python library for reading and writing Excel files.
Project description
ExcelAlchemy 开发指南
1. 项目介绍
- ExcelAlchemy 负责从 Excel 解析用户的输入,转换、生成对应的数据结构,给后端使用。
- ExcelAlchemy 负责将数据验证的
- ExcelAlchemy 负责将后端给定的数据,转换、生成对应的 Excel,给用户下载。
2. 核心设计
2.1 ABCValueType
负责实现表头的渲染,用户输入值的解析,反向解析,数据验证。
- comment: 用于生成表头的注释
- serialize: 将用户输入在 Excel 的值,转换为 Python 的值。需要注意的类型如时间。
- deserialize: 将 Python 的值,转换为 Excel 的值。如 datatime 转换成 str 类型。
- _validate: 私有方法,对数据进行验证,OptionId/name 的转换逻辑在这里完成。
2.2 Writer 文件
负责将捕获到的错误正确的填写到 Excel 的单元表格(cell)中,核心是计算单元格横纵坐标。 注意以下两点即可
- pandas 的横纵坐标从 0 开始,而 openpyxl 的横纵坐标从 1 开始。
- 对于合并的单元格,合并之后,无法再写入值,无法再写入格式,因此一定要先写入值和格式,再合并单元格(对于合并的单元格,本质上值在左上角第一个)。
2.3 如何捕捉中文错误
pydantic 支持自定义 validate 函数, 通过不同的 ValueType 实现不同的 validate 函数,从而捕捉不同的错误。
2.4 FieldMetaInfo
- 用于描述 Excel 的表头,包括表头的名称,表头的类型,表头的注释,后续很多地方,都会用到这个类。
3、重难点解释
3.1 如何解析表头是否有合并
这是通过观察 pandas 读取 Excel 时的行为,而得出的结论。
对于有合并的表头,pandas 会将合并的单元格的值,赋值给合并的单元格的第一个单元格,而其他的单元格的值为 None。 因此,我们可以通过判断是否为 None 来判断是否有合并。
3.2 如何记录错误
ExcelCellError 和 ExcelRowError 用于记录错误,其中 ExcelCellError 记录单元格错误,ExcelRowError 记录行错误。
ExcelAlchemy.cell_errors 用于记录单元格错误的横纵坐标信息。
ExcelAlchemy.row_errors 用于记录单元格错误的横坐标信息。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ExcelAlchemy-0.1a2.tar.gz.
File metadata
- Download URL: ExcelAlchemy-0.1a2.tar.gz
- Upload date:
- Size: 42.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6025b9fff8b5dde320ad5091b90f9e6391a2df8ce50f7a9beab92cbc1981422f
|
|
| MD5 |
4cddcb63b45d520df7dd956780eb5035
|
|
| BLAKE2b-256 |
7c1111145a4128f6ebf879542f14869684f0b4b0d89aef9b20a09a451e9037f7
|
File details
Details for the file excelalchemy-0.1a2-py3-none-any.whl.
File metadata
- Download URL: excelalchemy-0.1a2-py3-none-any.whl
- Upload date:
- Size: 55.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b475829628306ca3b387214efe2d264f6d8e6c4d89d9b1c0e7557a539fdf06ca
|
|
| MD5 |
f8a89827edbf048d2f0d60c9c21bbf4a
|
|
| BLAKE2b-256 |
68e11a174e2e63c0a761feec32422503e61bc3ce392d1ba0a09b2952097652bc
|