有没有高手教教我怎么把两列Excel数据变成mdx文件

我的Excel数据很简单,就两列,互相对应的单词列和翻译列,想实现在mdict搜单词就出现其对应的翻译。手机电脑上用Excel查看感觉都有点麻烦,看到mdict后发现这种程序简直绝了,大佬求教

现在可以直接让AI写个程序处理

新手指南:怎样编辑mdx?

里面的词典制作工具备份有一个:
01 Exce表格转TXT文本工具ExcelToTxtP

我没用过,你可以试试看。

其实你应该把含有数据样本(5-10行)的xls传上来。

按照你的描述,我猜想用公式就可以解决。

例句有人做过mdx的。

英汉句典

列数不多的话,拷贝到txt文件,文件编码选择UTF-8,得到:
单词列1|<-制表符->|翻译列1
单词列2|<-制表符->|翻译列2

要编译为MDX,则需要编译前的txt文件格式为:
单词列1
翻译列1
</>
单词列2
翻译列2
</>

为此需要把|<-制表符->|替换为换行符并在翻译列的下一行加上</>

这个在支持正则表达式的文本编辑器即可实现,可以问大模型具体方法。

当然,如果你在单词列或翻译列可能使用了制表符,那可以先在Excel中加入一列独特的字符串来隔开单词列或翻译列,然后再继续后续步骤

1 个赞

整不来啊,那些讲得乱七八糟的,根本没法直接上手.主要是我觉得我这要的很简单,应该很容易做到,那些给我讲懵了.就这样式的

,大哥这可以小白直接轻松实现吗,成mdx

excel另存为tsv,文本编辑器(不能是windows默认的记事本,随便找一个支持正则的都行)打开tsv,正则搜索替换$为\n</>,替换\t为\n,mdxbuilder打包,好了。

已经是最简单的步骤了,全过程就五分钟,还不会的话可以放弃学习制作mdx了。

1 个赞

tsv吗,另存找不到这个格式哎

记错了,那就导出csv吧

这一步改为替换, 为\n,这个就怕有的词头里有逗号。我记得导出csv的间隔符号也能自定义,好久没用过excel了。

词头就我这第一列吗,这都是纯单词,空格和任何符号都没有

没听懂你要说什么

假如你是用Windows 10的,用Emeditor创建一个新的文本,在Excel里Select all,copy,在Emeditorl里paste。

tab会跟着过去的。

接下来可以跟着amob的方法做。

1 个赞

你这个有三列,要随机应变一点,要替换两个逗号或者两个\t为\n,不要完全按我说的来,最后达成一行索引词语、一行内容、一行</>就行了,中间不要有空行。

1 个赞

直接让chatgpt写了个python文件,把xlsx和mdx名字换成你的,下载python
运行pip install openpyxl pymdict
然后运行脚本就好了

from openpyxl import load_workbook
from pymdict import MDXWriter  # pip install pymdict

# 1. 读取 Excel 文件
excel_path = "your_file.xlsx"  # 你的 Excel 文件路径
wb = load_workbook(excel_path, read_only=True)
ws = wb.active  # 取第一个工作表

# 2. 提取 A列和C列数据
entries = []
for row in ws.iter_rows(min_row=2):  # 从第2行开始,跳过表头
    word = row[0].value  # A列
    definition = row[2].value  # C列
    if word and definition:
        entries.append((str(word).strip(), str(definition).strip()))

# 3. 生成 MDX
mdx_path = "output.mdx"
writer = MDXWriter(
    title="我的词典",
    description="从Excel生成的mdict词典",
    encoding="UTF-8"
)

for headword, body in entries:
    writer.add_entry(headword, body)

writer.write(mdx_path)

print(f"✅ 转换完成,文件已保存为: {mdx_path}")
2 个赞

excel保存成txt就是制表符分隔的

我还是拙劣,用emeditor打开了csv,替换这一步是ctrl+f替换输入$吗

ctrl+h打开替换框,勾选正则表达式,输入$替换为\n</>,
然后将你词语和内容之间杂七杂八的所有内容替换为\n。

1 个赞

我把空的B列在csv里去掉了,下一步接着空白替换/n吗

不管怎么样,一行词语一行内容,你做到这样就行了。\n是换行的意思。

你只贴图让人看,别人是很难指导你的。

我总是说:贴数据样本,贴样本,……

说了半天,还是贴个图。

1 个赞

你按上面各位指点的办法做,能编辑成下面的样子就完成了,必须是文本文件,回车换行符必须是Windows格式(\r\n),最后就可以转换为mdx了。

gene
n 基因
</>
terminate
v 终止
</>
digest
v 消化
</>
leather
n 皮革
</>
curious
adj 好奇
</>
parasite
n 寄生虫
</>
video
n 视频
</>
impact
n 冲击
</>
extravagant
adj 奢侈
</>
burden
n 负担
</>

1 个赞