ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 这里能不能建立一个关于python与excel的专题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-1-30 11:41 | 显示全部楼层
还是不怎么习惯PY的语法,除了专业程序员,其余人有多少是在工作中会用到PY的?函数异能满足大部分需求,会点VBA已被惊为天人

TA的精华主题

TA的得分主题

发表于 2020-1-30 12:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
用python操作excel,這樣有意義嗎,為什麼要麻煩了一截
用python就做別的工作, 用vba多是業餘愛好者和大多是辦公室人員
用python的是it人了

TA的精华主题

TA的得分主题

发表于 2020-1-30 12:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
excelhomesnake 发表于 2020-1-28 11:28
只有11楼的才是比较符合实际。
数据处理是python强项(实际是pandas库带来的优势,没有他只用py毫无优势), ...

殺雞焉用牛刀
大部份用vba的人處理的都是小數據
字典+數組處理數十萬條也都是一秒左右,基本都感覺不了,大部份人也就是處理數千數萬條數據罷了

TA的精华主题

TA的得分主题

发表于 2020-1-30 14:09 | 显示全部楼层
现实工作中,很多人办公处理的是excel表格,无论是vba、vb还是python。如果说操纵excel表格,肯定是vba来得快。python主要是计算功能和图示功能,要加工excel数据,普通人用python编程去操作是很麻烦的。毕竟python不是excel的成员。举个简单的例子,我曾想编写个excel2007以上版本的菜单,但保存为excel2003就没有了。所以就直接放弃了深入学习excel2007以上版本菜单的编写。excel2003编写的菜单在excel2007以上版本的加载项中。这样可以通用。尤其是我喜欢excel2003。经典菜单,更能提高效率。

TA的精华主题

TA的得分主题

发表于 2020-1-30 14:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
至于说大数据,excel2003日常处理几万行的数据是很快的。我们审计遇到有的单位用sap做账,无效凭证太多,导致凭证量大。曾经想用excel2007以上版本多来几张工作表处理。但经过不断试验。发现工作表在100M处理还是没问题,速度一般。但达到130M时就存在问题了。好在这样的情况遇到的工况企业不是很多。

TA的精华主题

TA的得分主题

发表于 2020-1-30 17:20 | 显示全部楼层
386026398 发表于 2020-1-30 14:16
至于说大数据,excel2003日常处理几万行的数据是很快的。我们审计遇到有的单位用sap做账,无效凭证太多,导 ...

这种应用场景其实很适合python的,机器视觉,机器学习,自然语言处理,完全可以做到自动化处理,只是很少有人会这么做。

TA的精华主题

TA的得分主题

发表于 2020-1-31 21:06 | 显示全部楼层
本帖最后由 386026398 于 2020-1-31 21:17 编辑
sheeboard 发表于 2020-1-30 17:20
这种应用场景其实很适合python的,机器视觉,机器学习,自然语言处理,完全可以做到自动化处理,只是很少 ...


你说的还是一个运算问题。而我们需要的是大量的表格呈现。这是python难以做到的。其实日常工作中大数据运算不多。就算是几十万行的数据,我们需要的是查看,不是需要运算。真要是运算,excel自带的函数也能满足。所以只要无法用python代替excel,就不要谈python比vba好。两者没有可比性。正如不可能用acess代替excel一样,何况这还是office成员。其实我了解python是从一个审计人员用python编写程序将多个相同格式的文本文件进行汇总,其实这个vba也能实现,并且还无限制。

TA的精华主题

TA的得分主题

发表于 2020-2-1 11:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
chis3 发表于 2020-1-30 12:05
殺雞焉用牛刀
大部份用vba的人處理的都是小數據
字典+數組處理數十萬條也都是一秒左右,基本都感覺不了, ...

不是数据多少的问题,是开发效率的问题。同样一个数据分析处理问题,用vba需要大量编写数据处理命令,而使用py的pandas是声明方式,不需要你考虑怎么用字典汇总,怎么用数组遍历,这让更集中于业务逻辑处理。特别是在应对多变的需求时,优势更加明显。
只是网上很多资料都在用py的各种控制excel的库来做数据处理,让人产生python数据处理比vba麻烦的错觉。

真的不要以为python是IT业界用,python在数据领域的应用非常广(很多人用着vba做开发的事情,却否认自己是开发工作),同时我从没有否定vba的作用,让合适的工具做他擅长的事情。就像这论坛也有许多用vba调用sql做数据处理,接着用vba来展现数据,这是一样的道理。只是很多人先入为主屏蔽vba以外的工具。

TA的精华主题

TA的得分主题

发表于 2020-2-1 12:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
让vba阶段的人学py,就像让函数公式阶段的人学vba一样,因为他们没有意识到巨大的好处。

比如一个学生成绩表需要按班级拆分多个文件,vba的代码大致如下:
  1. 定义字典
  2. 定义数组
  3. 遍历数组
  4.       放入字典

  5. 遍历字典
  6.       每个关键字组中做输出工作
复制代码


在py的pandas 中则是:
  1. df.groupby('班级').apply(pd.to_excel)
复制代码


这里最大的区别在于,vba中需要自己完成"怎样分组"的逻辑,而在pandas中则是只需要表示"我要分组"即可。更别说如果表中的列位置改变了,vba代码就挂了(更可怕的是可以出来结果,只是结果错误)

有人会说:我用sql比py要方便。
是的,可以用sql,请尽可能用sql,但是sql的强项是数据查询,分析方面的数据处理比起pandas还是有差距(上面的例子用sql就需要vba比较多的配合代码)。

有人会说:数据输出还要设置表格样式等等
这工作就不要用py,用vba

所以,python上有一个库可以让vba直接把单元格区域直接转成pandas的DataFrame,用py处理完毕后传回vba。vba已经可以与py紧密协作了。这个库叫xlwings

不要以为工作内容是处理Excel,就代表整个过程都是在数据处理,实际上大部分工作是"数据处理"+"格式处理",后者才是vba的强项。

同时,也不要相信py容易学习。py是动态语言,有些时候是没有智能提示。并且需要安装环境。

-----------
有人会说,我vba也可以写一个groupby方法出来,类模块一下就可以。
是的,但是关键不在于groupby,而是groupby后面的apply、agg等方法,这些方法可以让你传入另一个处理方法(在.net上叫委托)。
vba没有这种技术(可以用接口实现,但是超级麻烦),如果vba有这种语法,那我也不建议"重数据处理"的人学习py

TA的精华主题

TA的得分主题

发表于 2020-2-1 13:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Python简介及应用领域编辑 Python是一种解释型脚本语言,可以应用于以下领域: [1]  
●Web 和 Internet开发
●科学计算和统计
●人工智能
●教育
●桌面界面开发
●软件开发
●后端开发
●网络爬虫
跟我们日常用excel进行数据处理关系大吗。能用vba进行excel数据处理的就很少。连学习vba都难,何况学习python。你讲的代码执行效率和能否实现各是一回事。就我用vb+excel编的审计软件来说。我的vb可能要5秒,用python需要1秒。对于excel应用来说,又有多大区别呢。又不是说几天的工作用python只要1天完成的事。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-19 19:09 , Processed in 0.030738 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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