-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
重构 Excel 数据源的插件实现 #45
Labels
Comments
关联 issue 如下,该 issue 应该包含了如下 issue 的问题和 scope: |
需要注意的事情如下: |
现有 Excel 插件在 load 时中支持的参数有:
|
ZhengshuaiPENG
pushed a commit
that referenced
this issue
Aug 10, 2022
* add config params when initializing a data loader * resolve save issues in excel ET * revise skip first n lines var name
整体 scope 合并至 2.3.4 进行发布,需要更新手册中的章节: |
在 2.3.3 版本中优化了 Excel 的读取,支持了 SkipFirstNLines 功能 |
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
背景:
目前 Excel 数据源插件在 load 和 save 都有不少问题,需要做一次更新
关于 Excel 处理理解的原则
我们可以对单一的 excel 认知为 db , 每一个 sheet 是 该 db 下的 table, csv 可以等同于单一sheet 的 excel 文件。
在加载时,我们应该将 sheet 映射成表, load 和 save 都是以 sheet 为单位来进行操作。
Load CSV:
需要支持的特性:
指定 sheetname 进行 load 为表,在加载时可以根据参数
sheetName
参数来进行加载制定的sheet,如未显式指定,则默认加载第一个sheet支持 skip first n lines 功能, 需要在 load 是在 where 语句中新增
skipFirstNLines
参数,值接受正整数 int 类型。比如整个 sheet 有 100 行, 当 skip 5 行,且header=false时,这里预期应该是返回第 6 - 100 行(共95行),如果skip 5 行且 header = true 时,预期是返回第 7 - 100 行,共 94 行 正确预期行为Save Excel
Append Save
现有的行为,当 save append 时将表作为一张新的 sheet 进行 append 写入,考虑以下的代码
生成的结果是 “sheet1”,如下图

再次执行一次, 会将表以 sheet2 的方式增加到 excel 中,如下

这里的行为不满足 append 的定义,或者说这里要表达的语义是 SaveAsNewSheet 这么一个语义。
期望的一个 append 的 save 行为:
默认不指定sheet 的时候,append 应该是以追加的方式,写入默认的第一个sheet 中,需要保持 schema 对齐,否则失败
指定已存在的 sheet 中,append 以追加的方式到该 sheet (行为和上一条其实是一致的)
指定未存在的 sheet 中,append 以追加写的方式写入新的指定的 sheet name 中(理解为新加sheet,写表进去)
行为兼容性变更:append sheet 的方式由原先默认新增 sheet, 变成指定新的 sheet name 来进行 sheet append,能力上可以保持一致
Overwrite Save
save overwrite 会涉及 excel 文件的覆写还是sheet 的覆写,这里关键的问题,是默认不指定任何 sheet 的情况下,是覆写第一个sheet,还是将整个文件删除进行覆写。
期望的一个 overwrite 的save行为:
这样 save overwrite 的行为在理解上和 save append 是保持一致的, 且与 csv 数据源保持一致
The text was updated successfully, but these errors were encountered: