Skip to main content

A Python Library for Reading and Writing Excel Files

Project description

ExcelAlchemy 开发指南

1. 项目介绍

  • ExcelAlchemy 负责从 Excel 解析用户的输入,转换、生成对应的数据结构,给后端使用。
  • 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 如何记录错误

ExcelCellErrorExcelRowError 用于记录错误,其中 ExcelCellError 记录单元格错误,ExcelRowError 记录行错误。 ExcelAlchemy.cell_errors 用于记录单元格错误的横纵坐标信息。 ExcelAlchemy.row_errors 用于记录单元格错误的横坐标信息。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ExcelAlchemy-0.1.0a6.tar.gz (36.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

excelalchemy-0.1.0a6-py3-none-any.whl (51.1 kB view details)

Uploaded Python 3

File details

Details for the file ExcelAlchemy-0.1.0a6.tar.gz.

File metadata

  • Download URL: ExcelAlchemy-0.1.0a6.tar.gz
  • Upload date:
  • Size: 36.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for ExcelAlchemy-0.1.0a6.tar.gz
Algorithm Hash digest
SHA256 f520e00ced50ec36234b70f4722bf47b76da4a17c613e8c390d512d8f2fac628
MD5 407557da484ecf68f73c92773314165a
BLAKE2b-256 c5eedef7e7e8dba4c68dd7b150183ce9a3c3f7007daab2eb645e07fc2e23ef8c

See more details on using hashes here.

File details

Details for the file excelalchemy-0.1.0a6-py3-none-any.whl.

File metadata

  • Download URL: excelalchemy-0.1.0a6-py3-none-any.whl
  • Upload date:
  • Size: 51.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for excelalchemy-0.1.0a6-py3-none-any.whl
Algorithm Hash digest
SHA256 1ae74731f46e608aa4bb957b42e787dba51eda04eec0db10c9dd69eb1bcae7e8
MD5 74dcd925ece2bf90ee8541730d82c643
BLAKE2b-256 1b3eea5547d183feaeb152fc461a9f9b29a2a95c4efd8a8fd758835745663c9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page