水表更换后的资料整理,不只是抄下几个数字。照片中的新旧水表要对应起来,表号和读数要核对,整理好的记录还要放回 Excel 总表。文件一多,在图片查看器和表格之间来回切换就很容易漏项。
“水表读数录入工具”围绕这条工作流展开:选择图片文件夹,逐张核对并录入,最后生成带照片的读数表,按需要回填原有总表。开发中最重要的目标,是让每一步的状态清楚、结果可核对、出了问题能恢复。
1. 让图片和表单待在一起
选择文件夹是整个流程的入口。工具读取其中的 JPG、JPEG、PNG 图片,并把进度保存在同一文件夹,方便下次接着处理。

录入界面分为三部分:左侧是照片列表和完成状态,中间是图片查看器,右侧是新旧表号、读数与备注。查看器支持缩放、拖拽、旋转和亮度、对比度调整;按 Enter 可以保存并继续下一张,减少鼠标来回移动。
默认值也需要谨慎处理。旧表号可由文件名预填,新表读数预填为 0,但只有默认值的记录仍保持“待处理”,避免连续按回车就把一批尚未核对的照片标成完成。

2. 识别给候选,结果由人核对
水表照片会有反光、倾斜、字轮停在两个数字之间等情况,因此项目以人工核对为核心。可选的 OCR 会把识别出的数字列为候选,供使用者点选,不直接替人判断哪个是表号、哪个是读数。
人工录入、进度保存和 Excel 导出可在本地完成。启用 OCR 或视觉模型辅助时,相关图片会发送到所配置的外部识别服务,需要联网;付费视觉接口的自动回退需要显式允许。已有识别结果可以缓存,减少重复等待。
识别辅助负责减少输入工作,人工核对仍是最后一道确认。
3. 保存进度,也保留恢复的机会
每条进度先写入临时文件,再替换正式进度文件,降低写入中断造成整份记录损坏的风险。重新打开文件夹后,已录字段会回填;照片增减时,程序重新核对文件列表,保留已有录入数据。
表号和读数在导出时按文本写入,保留前导零。空值、待处理和已完成也分开处理,避免把默认值或识别失败的提示当成真实数据。
4. Excel 里有图片,还要能看见、对得上
读数表把新旧表号、读数、照片和备注放在同一行。照片保持宽高比,按单元格的宽度和行高共同计算尺寸,避免竖图盖住下一行;同时生成长边不超过 1600px 的嵌入副本,原始照片不做修改。
导出不只检查文件是否生成,还会检查工作表与绘图部件的引用、实际嵌入的图片数量。照片读取或缩略图生成异常会列入结果,不能静默当成成功。

5. 回填总表,宁可报出来,也不猜
原表回填采用归一化后的表号精确匹配,不靠相同尾号猜测住户。匹配不到、表号冲突或照片异常时,记录会明确列出,供人工补查。
默认回填到副本,不改原文件;需要就地修改时,先备份再写入。回填不改原有行高,照片适应现有单元格;已有照片的目标行会跳过重复嵌图,避免同一格叠放多张图片。
6. 技术选择服务于完整流程
项目使用 Electron 承载桌面窗口与文件操作,Vue 3 组织界面,Vite 负责开发构建,ExcelJS 处理表格与图片。文件访问集中在主进程,渲染层通过受控接口调用。
这次实践的重点,是把“看照片—核对—保存—导出—回填”做成一条能继续、能检查、能恢复的流程。一个实用工具的可靠性,往往就藏在这些不显眼的细节里。



评论
一起把问题聊明白正在准备评论区…
评论区包含自动审核系统,提交后经审核展示。邮箱仅用于评论通知,不会公开展示。请友善交流,勿在留言中填写敏感信息。