ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: freestep

[求助] 600¥找人帮我做这么一个把模板刷进excel文件的小软件啊

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-4-19 19:38 | 显示全部楼层
kevinchengcw 发表于 2021-4-19 13:05
不要过度迷信数组,涉及大规模区域操作时,一些被遗忘的传统操作效率更高

楼主这要求哪来的什么区域操作啊,它每个空单元格都是要进行判断,是要保留原数据的,还有就是399个模版, 也不是说一样的,所以这里是不存在区域的.我感觉几秒是很难实现,光贴张结果图不能代表什么.其实我还是感觉这个问题常规解决必然有点耗时,除非能解析excel文件,那样应该能做到很快的速度.

TA的精华主题

TA的得分主题

发表于 2021-4-19 20:39 | 显示全部楼层
最新的Linux下用PyQt做了个界面,分享一下。小菜鸟被python中的那个self搞得死去活来,。。。。。。

demo.gif
Python的代码脑洞是真的大,分享几句

下面这段是提取模板文件信息的,用3个列表包含了值、数字格式、字体信息
  1. Tv=[[v.value for v in row] for row in rangeT]
  2.         Tf=[[f.number_format for f in row] for row in rangeT]
  3.         Tt=[[f.font for f in row] for row in rangeT]
复制代码

下面就是真正的工作代码了,不复杂,但语句结构真的是服气,Python的设计者脑洞太大

  1. for r in template_rows:
  2.     rangeS=sh['a'+str((r-2)):CC+str((r+11))]
  3.     for rowS,Tvv,Tff,Ttt in zip(rangeS,Tv,Tf,Tt):
  4.         for cellS,Tvvv,Tfff,Tttt in zip(rowS,Tvv,Tff,Ttt):
  5.             if Tvvv!=None:
  6.                 cellS.value,cellS.number_format,cellS.font=Tvvv,Tfff,Tttt
  7.                 tn+=1
  8.                 self.pbar.setValue(tn)
复制代码




TA的精华主题

TA的得分主题

发表于 2021-4-19 20:47 | 显示全部楼层
Moneky 发表于 2021-4-19 09:22
附件中的文件只需要一次open

啊是
一直誤會以為什麼數百個文檔要開和存

TA的精华主题

TA的得分主题

发表于 2021-4-19 22:06 | 显示全部楼层
上千个公式,光是公式运行也要花不少时间,某个单元格值变动会引发全部公式重算,加上打开工作簿,关闭工作簿,时间很难估算。既然用VBA为何不直接把结果值填入单元格。

TA的精华主题

TA的得分主题

发表于 2021-4-19 22:17 | 显示全部楼层
lipton 发表于 2021-4-19 22:06
上千个公式,光是公式运行也要花不少时间,某个单元格值变动会引发全部公式重算,加上打开工作簿,关闭工作 ...

公式只要application.calculation = false就可以了
但真的看不明白這是幹什麼

TA的精华主题

TA的得分主题

发表于 2021-4-19 23:25 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-4-20 12:22 | 显示全部楼层

出来了一个新问题,py刷这400个模板进去,确实只需要不到5秒钟.。。。。。。。但是那么刷进去的模板,第N个模板和第1个模板的行号是一样的,没有跟着变化啊。。。所以程序员做了一个行号修改的处理。结果修改行号的这个流程,就导致刷这套模板5秒钟变为了5分钟。而且程序员说他没法优化这个处理时间了。。。。。。

楼上的各位大神大哥们。怎么思考啊?
更麻烦的是,条件格式也可以刷进去,但是修改行号的那个处理,他没法把条件格式的公式的行号也修改啊。。。。。咋办呢???????

TA的精华主题

TA的得分主题

发表于 2021-4-20 12:30 | 显示全部楼层
freestep 发表于 2021-4-20 12:22
出来了一个新问题,py刷这400个模板进去,确实只需要不到5秒钟.。。。。。。。但是那么刷进去的模板,第N ...

其實這個莫名其妙的東西就不能真的做一個資料庫計算的模式幹嗎?
這是什麼鬼玩意

TA的精华主题

TA的得分主题

发表于 2021-4-20 12:42 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 Moneky 于 2021-4-20 12:45 编辑
freestep 发表于 2021-4-20 12:22
出来了一个新问题,py刷这400个模板进去,确实只需要不到5秒钟.。。。。。。。但是那么刷进去的模板,第N ...

公式的问题可解决
ps:不确定能否比5分钟更短

TA的精华主题

TA的得分主题

发表于 2021-4-20 13:27 | 显示全部楼层
本帖最后由 Moneky 于 2021-4-20 14:02 编辑
freestep 发表于 2021-4-20 12:22
出来了一个新问题,py刷这400个模板进去,确实只需要不到5秒钟.。。。。。。。但是那么刷进去的模板,第N ...

初步测试了一下,在虚拟机中,翻译公式,1L 附件 399个模板需要37秒 左右
无标题.png

动态演示
demo2.gif

Win10物理机中,速度和虚拟机差不多(VMware虚拟机性能牛批)
2021-04-20_135852.png




您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-19 18:16 , Processed in 0.032951 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表