level 9
fly9593
楼主

这是我写的一个桌面应用,使用pyside6实现。窗口分为主窗口和选区窗口(蓝色矩形边框的那个)。程序的作用就是按下快捷键将选区窗口下的屏幕区域截图,然后通过ocr识别并填充到表格中。选区窗口我是设置了一个系统级的透明窗口,在截图前后隐藏/取消隐藏。我考虑过使用pywebview/Electron那样使用Web技术的桌面框架,但是那种框架构造出来的窗体是浏览器级别的,难以实现透明窗口的功能。
扯得有点远了,目前程序是有一个导入导出功能,目的大概是从xlsx文件导入数据,在这个窗体中编辑,然后导出。
目前我想做一个这样的功能:可以从文件中导入数据,然后以原导入文件为模板,在保留原格式的基础上,导出修改后的数据。
我个人是希望能够做到这种功能:
假如文件中某个单元格的数字被标红,我们导入这个文件,在这个数字前后删除了某些行或添加了一些行,导出,这个数字依然会被标红。
但是我实际修改下来发现这个需求是很难实现的,现在我们的导出功能,是遍历窗体中所有的表格(PySide6中QTableWidget的item对象),收集成列表。也就是说,只能收集表格中显示的数据。
严格来讲,实现这个需求只需要知晓知晓导出数据的原始位置信息,哪些行是没有修改的,哪些行是新增/删除的。
在写入xlsx文件的时候,先在文件的原始位置写入未修改的信息,删除空行,然后插入新增的行(继承下一行的样式信息),这个位置信息只需要精确到行就可以了。
我自己的编程水平不算高,很多问题都是问的ai,因此想请教一下各位大佬有什么思路,任何回复对我来说都是有帮助的,谢谢!