A legacy .xls cell that says N/A or NULL is dropped from the index

未关闭
#42,415 1 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
30/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
停滞
技术栈
pandas, python
领域
backend, data

调研方向

Start with api/core/rag/extractor/excel_extractor.py and compare the pandas-based .xls branch with the openpyxl .xlsx branch. Review issue #42371 and its tests; done means literal values such as N/A and NULL remain available in indexed row output without dropping their column names.

由索引模型根据 Issue 内容生成。

描述

Self Checks
  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.
Dify version

main (9c6c48b50b)

Cloud or Self Hosted

Self Hosted (Source)

Steps to reproduce

Upload a legacy .xls to a knowledge base in which some cells literally say N/A, NA, n/a, NULL, None, NaN or nan — "not applicable" in a hand-written sheet, NULL in a database export.

api/core/rag/extractor/excel_extractor.py reads the .xls branch through pandas:

df = excel_file.parse(sheet_name=sheet_name)

pandas treats those seven strings as missing values by default, so the cell arrives as NaN and is skipped together with its column name.

A three-row sheet, written with xlwt and read exactly as the extractor does:

Code | Status | Units        indexed today
A1   | N/A    | 12     ->    "Code":"A1";"Units":"12"
A2   | NULL   | 7            "Code":"A2";"Units":"7"
A3   | ok     | 3            "Code":"A3";"Status":"ok";"Units":"3"
✔️ Expected Behavior

A cell keeps the text it holds, as the .xlsx branch of the same extractor already does (it walks openpyxl cells and gets the string):

"Code":"A1";"Status":"N/A";"Units":"12"
"Code":"A2";"Status":"NULL";"Units":"7"
"Code":"A3";"Status":"ok";"Units":"3"
❌ Actual Behavior

The Status key is absent from the first two rows, not merely empty. A question such as "what is the status of A1?" finds no evidence in the index, and the chunk looks complete, so nothing signals the loss. dtype=object does not change this; only keep_default_na=False does.

A fix with tests is open in #42371.

主要语言
TypeScript
星标
157k
派生
24.7k
平均合并
22 小时 32 分钟
30 天内合并 PR
611

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

langgenius/dify 的其他 Issue

查看 langgenius/dify 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。