-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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 功能 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in 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: