分享
如何在Python下实现让用户输入行列名称自动定位单元格提取数据?
小弟最近要用python做一个程序,有几点疑问海王各位大神解读!先在这里谢谢啦!1. python处理excel文件中,能不能实现让用户输入列名和行名(例如列“总销售金额”,行“2015-10-15”)然后定位单元格读取数据?我现在看到的都需要知道该单元格的代码(例如A2)才能提取数据。2.如何编写脚本能让程序对excel自动提取相关数据?例如我需要python提取列头为“销售总金额”,行头为“2015-10-15”的,在不知道这些字段对应单元格编码的前提下有没有什么函数能对字段进行匹配然后提取呢?3.假如一张表上面是某个部门的总销售额,而第二张表上是部门下具体商品的销售额,有没有什么函数能表示表1的数据=表2数据之和呢?除了算数(上千种商品一个个加实在加不过来)谢谢!~
回复 ( 5 )
1.自己写个函数维护个字典或者改用关系数据库;
2.自己写个函数维护个字典或者改用关系数据库;
3.自己写个函数维护个字典或者用excel公式或者改用关系数据库。
好吧还有个win32的.com接口让你的python执行excel下的操作,需要有excel并且足够熟悉excel。
你看,其实你要用python来处理excel,就要会python会点儿算法能写个函数;要么就别用excel来改一套符合需求的数据库(比如SQL);要么就别用Python。
获取一个工作表
table = data.sheets()[0] #通过索引顺序获取
table = data.sheet_by_index(0) #通过索引顺序获取
table = data.sheet_by_name(u’Sheet1′)#通过名称获取
先占坑。
python 读取写入excel文件
五十
我的疑问是:
如果通过输入指定内容,匹配后返回该内容所在的excel行列号
问题1和2都是属于定位取数据的问题嘛,这方面支持的比较好的包当是pandas了,后面我就以pd简称来举例了:
首先利用pd.read_excel方法读取excel,这里可能要注意行列索引的问题,读取后,你就能得到一个dataframe的对象,可以通过ix方法定位数据。
问题3就是数据聚合的问题,你得到dataframe对象后,通过groupby().sum等操作就可以得到聚合的结果。
这几个操作都属于pandas的常规数据处理,建议题主去了解一下。