V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ghmum
V2EX  ›  程序员

兴趣想开发一个小系统,各位大佬求推荐技术路线

  •  
  •   ghmum · 1 天前 · 3263 次点击

    个人不是程序员,纯兴趣爱好,也是工作需要,想开发一个用来管理题目的系统,结合 word 使用。目前在 vsto 上写过一些小脚本,代码主要还是 copilot 帮写的,对 docx 文档的对象模型蛮熟悉。

    主要想实现的功能:对题目进行分类,主要是做功能强劲的标签系统、展示题目的界面、筛选题目协同 word 工作。目前的想法是这样的几条,估计是很不成熟,请各位大佬给点建议:

    • 把每个题目做成一个 docx 文档,再调用 word 转成 html 存在本地。整个小数据库(计划用 sqlite )把题目和标签存储起来。
    • 标签系统应该会比较复杂一些,同一个题目会进行多种分类,打上标签。
    • 需要开发一个界面程序来展示、挑选题目。本来对开发不熟,所以跟 ai 聊了,因为要结合 word ,得用.netFramword 4.7 。所以建议用 wpf 开发,因为这个好像比现代的界面设计框架简单。但是!!看了一下网上的发言,xaml 好像是个大坑,有点怕了。

    因为是小白,所以,就希望简单、简单、再简单。先让系统跑起来,然后再做功能拓展和界面没法,各位大佬能不能指导一下。也可以付费指导

    第 1 条附言  ·  1 天前
    补充一下背景,上面的内容没有讲清楚。办公套件必须要用,因为是学科的题目,所以既有图片,又有公式,还有格式,并且最重要的是:题目最开始的源格式就是 docx ,所以必须要用办公套件来操作。如果不用 docx 储存,就得自己想办法解析 docx 文档,之前就试过,失败了,太难了。

    为什么使用.net Framework ,其实是听了 ai 的建议,所以用了这个,刚开始什么都不懂,连 framework 是什么都知道。搞了一段时间才大概搞清楚它们的关系。然后知道可以使用互操作来控制 word 进程,所以才搞出来一些 vsto 脚本。

    为什么要把 docx 转成 html 再存一遍。因为 wpf 的控件里面没有支持渲染 docx 的,刚开始还是转成 xps 格式也是有一个控件可以直接显示 xps ,但是那个控件又有工具栏,还不能关,很麻烦,页面大小也是固定的。后来知道 word 可以直接转 html ,才转的。
    第 2 条附言  ·  1 天前
    再补充一下:
    1 、有大佬在提醒用 Excel 导入。因为题目全都是 docx 文档,所以用 Excel 不方便,并且目前已经写了一些小的脚本把文档进行格式化。也就是现在题目在文档中已经高度格式化、结构化的。之所以要做系统,是因为题目虽然高度结构化,但是题目也是分散在不同的文档中(不同章节是不同的文档)。而且在 word 中很难对题目打标签进行分类。尤其是根据标签筛选,word 根本就没法做到
    2 、有大佬提到公式、图片等格式繁多,所以难以解析,就是因为这个原因,所以我打算把题目直接储存成 docx 文档,一个题一个文件(因为看到有一个题库的软件就是这个干的)。然后再生成一份 html 文件,用于在图形界面中输入 wpf 的控件进行展示。
    第 3 条附言  ·  1 天前
    因为这个软件开发出来主要是自己,所以使用上应该不会存在太大问题。有 bug 可以边用边修。
    另外,这个系统做出来,主要就是要配合 word 使用,比如筛选好题目在 word 里编辑过程中需要题,就激活选题窗口。然后再 word 中编辑题目的时候,如果题目需要修改,就反查数据库的题目,修改源文件。另外有一个桌面程序能够对所有题进行增删改查、预览,通过勾选来生成文档
    31 条回复    2025-08-19 21:16:12 +08:00
    poorcai
        1
    poorcai  
       1 天前
    用 .net8+Avalonia 也比 .NET Framework 好吧?
    tangmanger
        2
    tangmanger  
       1 天前
    xaml 还好 习惯了也就那样 如果你先习惯 web 那套你肯定会觉得不适 如果你最开始接触的就是 xaml 就会无感
    yinaqu
        3
    yinaqu  
       1 天前
    为什么题目一开始要做成 word 文档,而不是更简单的其它格式?比如自己定一个 json 格式?
    rensuperk
        4
    rensuperk  
       1 天前
    办公套件是大坑,尽量不要碰
    Mithril
        5
    Mithril  
       1 天前
    首先,不要用 Word 。哪怕你最终需要输出成 Word 格式,也不要用它保存中间结果。

    其次,你要确定你的“题目”都是什么东西。简而言之,对你这个在项目中算是核心的模型进行建模。确定它是只包括文字,还是要图文混编,或者需要支持 LaTax 一类的公式以及渲染。要不要支持混排图文的各种定位方式,或者填空题这种如何进行标记等等。都要考虑清楚。这是最重要且麻烦的一步。

    确定了“题目”的建模以后,在考虑它的保存,检索以及展示方式。如果只是图文混编的话,最好还是直接定义一个 JSON 结构,然后使用 HTML 方式渲染。

    标签,算是系统中最简单的一部分了。只要你把题目存到数据库,那无论如何你都能实现,可以暂时不考虑它。
    iorilu
        6
    iorilu  
       1 天前
    问 ai 就行了

    另一点关键就是, word 只是输出格式, 中间格式必须用一种统用格式
    建议用 markdown, 当然也可以是 json
    具体让 ai 建议, 包括技术栈等
    z1829909
        7
    z1829909  
       1 天前 via Android
    干净的数据不要碰 word ,会变得不幸。
    kokerkov
        8
    kokerkov  
       1 天前
    你这不就是文档管理系统吗?把每个题目都做成了一个文档而已。

    https://docs.paperless-ngx.com/
    mooremok
        9
    mooremok  
       1 天前
    与 word 相关的编程,我搞了 3 年了。非常不建议使用 word 客户端参与,无论是 ms office 还是 wps ,这种靠 com 接口操作客户端的技术线路在实际运行中,依然有些匪夷所思的 bug ,最好完全脱离 com 。
    imnpc
        10
    imnpc  
       1 天前
    导入题目都用的 excel ,我们开发过,不要用 word ,很难解析
    200dev
        11
    200dev  
       1 天前
    给谁用这个系统(目标用户)这个想好没
    donaldturinglee
        12
    donaldturinglee  
       1 天前
    做界面程序感觉可以用 pyqt ,需要指导的话可以加我 TGVlX0xhYnM=
    yb2313
        13
    yb2313  
       1 天前
    我看到想快点做完先跑起来? 那必须是 python 了, 这语言就是写原型的先跑起来验证想法的, 快就完了. 验证好了再用其他语言重构, 画画前打草稿是好习惯
    keyrinrin
        14
    keyrinrin  
       1 天前
    题主的这个功能我做过,不过目的是将题目录入题库系统

    技术栈是 .net + h5 ,可以往 vsto 里塞浏览器
    难点是 ooxml 转网页,因为公式种类繁多
    再次合并 ooxml 也会有各种排版问题

    总的来说不太好弄
    spritecn
        15
    spritecn  
       1 天前
    在做在线教育相关项目 ,我们题是这么存的,比如下面是一个数学题
    ---
    已知集合[img=https://bkx-course.oss-cn-chengdu.aliyuncs.com/admin/question/20250326-u485zB4xpOVz.png],[img=https://xxx.oss-cn-chengdu.aliyuncs.com/admin/question/20250326-1TaR7Lqhif3U.png]则满足条件[img=https://xxx.oss-cn-chengdu.aliyuncs.com/admin/question/20250326-1FqTuN90E7DG.png],的集合 C 的个数为( )
    ----
    ghmum
        16
    ghmum  
    OP
       1 天前
    @yb2313 我本身就是业余,还要去学 Python 的库,太麻烦了。我想的是慢慢做功能,先跑起来是指能够基本框架搭起来没大问题
    ghmum
        17
    ghmum  
    OP
       1 天前
    @spritecn 这样的话要先解析来源题目,我没有能力做到这个事情呀 ,而且如果要修改题目,并不是很容易,还需要专门做一个界面来编辑题目,比如公式这里是用的图片,如果要编辑公式还要结合其他软件,就整的太麻烦了。并且题目本身还有格式这些,如果不背靠 word ,格式这块就不是我能跨越的大山
    yb2313
        18
    yb2313  
       1 天前
    @ghmum #16 你的意思 c#比 py 学起来更快更轻松吗吗? 那我建议你直接学 rust, 慢就是快, 难就是简单
    starlion
        19
    starlion  
       1 天前
    看到你说的需求好混乱,先把需求表述清楚,技术选型后面再做。

    需求描述:
    第一:你需要这个小系统的背景是什么

    第二:小系统的目标,你最终要达到什么目的

    第三:你有哪些需求,1, 2 ,3 。。。用数字罗列清楚

    第四:根据你的需求描述基础上,才是小系统需要实现哪些功能,才满足你的需求

    最后才是技术选型实现系统功能
    yufeng0681
        20
    yufeng0681  
       1 天前
    @starlion #19 网上题库一堆堆的,中小学的老师都有帐号,直接按自己要求导出一批题目来生成试卷。 存储格式肯定不是 docx 。
    sjbsjb233
        21
    sjbsjb233  
       1 天前
    word 这东西本身就信不过,版本太杂兼容问题很大。可以大道至简,把非格式化的 word 题目渲染出来的内容丢给 ai 去识别生成 latex 格式的结构化标准化题目,然后存储到数据库中。

    word 本身的公式插入格式就有很多,一些是自带的,还有是使用 Mathtype 插件做的,真要去查看 xaml 来做题库的话,兼容的过程是很痛苦的,鬼知道会出什么问题
    ghmum
        22
    ghmum  
    OP
       16 小时 27 分钟前
    @yufeng0681 大题库下载下来的都是 docx 文档,除非自己写爬虫,否则是拿不到其他格式
    ghmum
        23
    ghmum  
    OP
       16 小时 22 分钟前
    @starlion 主要就是题库、跟 word 一起协作。需求:1 、储存题目,有丰富的标签系统。2 、在编写 word 的过程中方便地筛选题目、插入题目。3 、另外还有一个界面程序能够进行题目的预览、管理、修改。所谓题目,即 docx 片段

    @sjbsjb233 就是这个原因,所以 word 直接储存成文件,不去解析内容
    fyt234
        24
    fyt234  
       15 小时 27 分钟前
    既然题库已经确定是 wor 的转 html 了,就可以理解为需求就是根据 HTML 片断和标签自动组成试卷,那随便选型你熟悉的开发工具做个界面就可以了,甚至直接用 HTML+js 就可以。word 转 HTML 让 ai 帮你用微软那套技术做个服务出来独立运行,界面应用在数据库或者文件中获取对应的标签,再根据需要去调用服务获取 HTML ,再整合展示就可以了吧。
    wqywangweijia
        25
    wqywangweijia  
       15 小时 19 分钟前
    看了全部信息,依然不知道你到底要干什么
    keller
        26
    keller  
       13 小时 59 分钟前
    来让我来给你指一条明路,你需要使用的是 onlyoffice !

    onlyoffice 开放的 api ,可以帮助你动态获取 word 文档内容的片段代码,你只需要将代码进行结构化存储,然后通过可视化界面和前端 api 就可以在自己的界面上实现动画的 word 片段插入(试卷组题);

    至于后端用什么完全无所谓没什么区别。
    keller
        27
    keller  
       13 小时 50 分钟前
    动画的 word 片段插入=》动态的 word 片段插入
    gorvey
        28
    gorvey  
       13 小时 46 分钟前
    @spritecn #15 可以再优化下,如果是手机或者高分辨率屏幕查看的话会糊,可以把公式放到 img 的 data-latex 里面,让前端拿到 latex 自己渲染,分辨率更高
    spritecn
        29
    spritecn  
       13 小时 35 分钟前
    @gorvey 直接用图片更通用,比如化学题里画烧杯,latex 也蛮好的,但出题的人不会写,我也不会..
    机或者高分辨率屏幕查看的话会糊,这个还好,我们测试下来效果还可以,我们优化了图片宽高
    watry
        30
    watry  
       7 小时 53 分钟前
    @ghmum
    需求 1 如果还没用上 sqlite ,就用 excel 过渡吧,可以参考这个框架:
    每行对应一个题目,用一列保存题目 word 链接,其他列用作标签,例如
    路径(不是题目本身)|题目在文档的位置|难度|出题次数|领域
    d:\xx.docx|xxx|1|10|力学

    这样,需求 2 可以用 excel 的筛选实现,也可以手动复制选中题目(行)到新表格

    需求 3 写一个脚本,导出筛选结果为 docx ,用 word 查看。为了方便修改,可以显示每道题的 docx 链接

    这个思路应该很好让 AI 编码,python 、vba 都可以,以后也不难升级 sqlite 、添加界面
    starlion
        31
    starlion  
       4 小时 21 分钟前
    @ghmum 根据 23 楼,你回复的需求,我理解的系统需要的功能,梳理下,
    几个主要概念:1. 题目 2.题库 ,题目组成了题库。

    这 2 者关系,你说题目就是 docs 片段,我理解就是由一道或几道题组成一个题目,题目可以打上标签,方面检索。

    然后对题目进行增加、修改、删除、查询、预览、打标签。

    假如你要出一张试卷,可以在题库里选择或检索各种题目组成一张试卷,至于试卷格式,你说的是 docs ,并且还能编辑试卷。

    经过上面一番梳理,那小系统设计就有一点眉目了。简单点左右栏页面,左边显示部分存储的题目,可以检索题目;
    右边是在线 docs 文档编辑器,可以选择左边的题目、编辑题目,至于导出 docs 、pdf 还是其它格式,在加功能
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1368 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:37 · PVG 01:37 · LAX 10:37 · JFK 13:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.