2020-03-27 10:38发布
大致步骤:Python学习交流群:741090028
1.安装Python3,pip工具环境
2.安装xlrd和xlwt
3.读取所有源Excel文件
4.将读取到的Excel信息组织到新的Excel对象中
5.数据缓存和分析
6.向新Excel对象中追加分析结果
7.将新Excel对象保存为目标输出文件(最终想要的文件)
1.对于Python环境的安装本文不做说明。
2.安装Python扩展包有不同的方式,这里使用pip命令安装xlrd和xlwt。
在Windows下,打开命令提示符(控制台),cd python的安装路径下Scripts文件夹下(在这里有pip命令执行工具)。或者将该路径添加到系统环境变量。
xlrd:读取Excel的扩展包
执行:pip install xlrd
xlwt:写入Excel的扩展包
执行:pip install xlwt
随便写一个py文件写入import xlrd, xlwt 执行该文件不出错说明安装成功。
或者打开python自带的编辑器进行输入测试。
3.具体代码如下
# -*- coding: utf-8 -*-import xlrdimport xlwtimport sys def read(file_list): # 创建新的workbook out_work_book = xlwt.Workbook(encoding = 'utf-8') # 为了将多个文件的相同表头的sheet和并到一个sheet内,定义新sheet写入的行号位置 out_work_book_rows = [0,0] # 取得传入的文件列表 (第一个参数为脚本名字) for file_name in file_list[1:]: # 打开文件 workbook = xlrd.open_workbook(file_name) # 取得当前文档的sheet列表 sheet_names = workbook.sheet_names() for sheet_idx in range(len(sheet_names)): sheet_name = sheet_names[sheet_idx] # sheet = workbook.sheet_by_index(sheet_idx) sheet = workbook.sheet_by_name(sheet_name) # sheet.row_values(n) 获取整行数据 # sheet.col_values(n) 获取整列数据 # 获取行数 rows_count = sheet.nrows # 获取列数 cols_count = sheet.ncols # 存储写入的列数 write_col_count # 创建新的sheet if len(out_work_book_sheet) <= sheet_idx: out_work_book_sheet[sheet_idx] = out_work_book.add_sheet('sheet'+sheet_idx) # 写入sheet for curr_col_num in range(cols_count) # 当前列的内容 col = sheet.col_values(curr_col_num) # 遍历当前列的所有选项 for index in range(len(col)) # 当前列第index的内容 value = col[index] # 在写入的sheet的行号上,加入上一个表写到的位置行号,继续向后追加内容 out_work_book_sheet[sheet_idx].write(out_work_book_rows[sheet_idx] + index, write_col_count, value) write_col_count++ out_work_book_rows[sheet_idx] += cols_count # 输出目标文件 out_work_book.save('out.xls')if __name__ == "__main__": read(sys.argv)
4.针对合并的单元格,上述代码会出现合并单元格只有一个格子有内容其余为空的情况。这种情形,现将当前sheet表格内所有合并单元格数据保存下来,当遇到属于合并单元格的部分,则默认选取该合并单元格的第一个格子的数值即可。代码如下:
def get_merged_cells_value(sheet, row_index, col_index): # 获得当前sheet的所有合并单元格数据 merged = sheet.merged_cells # 判断给定的单元格,是否属于合并单元格,如果是合并单元格,就返回合并单元格的内容 for (rlow, rhigh, clow, chigh) in merged: if (row_index >= rlow and row_index < rhigh): if (col_index >= clow and col_index < chigh): cell_value = sheet.cell_value(rlow, clow) return cell_value return None
5.数据缓存可以利用python中的容器,和对象结构,将Excel中的数据对象化,在读取时候进行实例化然后进行保存。在需要进行数据分析的时候利用。
6.在遇到特殊的表格格式的时候,读取的内容可能在转存的时候出现类型错误,导致无法识别。例如时间类型,正确显示需要按特定格式进行读取并且转换。
表格类型说明: table.ctype
0 empty
1 string
2 number
3 date
4 boolean
5 error
代码如下:
from datetime import datetime,date def get_merged_cells_value(workbook, sheet, row_index, col_index): # 获得当前sheet的所有合并单元格数据 merged = sheet.merged_cells # 判断给定的单元格,是否属于合并单元格,如果是合并单元格,就返回合并单元格的内容 for (rlow, rhigh, clow, chigh) in merged: if (row_index >= rlow and row_index < rhigh): if (col_index >= clow and col_index < chigh): if sheet.cell(rlow, clow).ctype == 3: date_value = xlrd.xldate_as_tuple(sheet.cell(rlow, clow), workbook.datemode) # 转换显示格式为2019/05/05 cell_value = date(*date_value[:3]).strftime('%Y/%m/%d') else: cell_value = sheet.cell_value(rlow, clow) return cell_value return None
7.最终,我们写一个windows下的bat批处理文件或者在linux下写一个shell,将文档名字作为参数传入执行即可。
到此我利用程序完成了几天的工作,还可以在以后相同的使用环境下更快速的完成工作。
Python是现在仅次于C,C++,和java的计算机语言。
因为开源所以有很多大家开发的包;
关于操作excel的包有很多:推荐你使用xlwings,简单实用哦.
Doc命令下输入 pip install xlwings就可以安装这个包。
python环境下import xlwings as xw就可以使用这个包了,同时VBA也可以完成对它的引用。
可以试下在cmd命令行执行,编辑器中对turtle的支持度不是很好。
人工智能是一门起步晚却发展快速的科学。20 世纪以来科学工作者们不断寻求着赋予机器人类智慧的方法。现代人工智能这一概念是从英国科学家图灵的寻求智能机发展而来,直到1937年图灵发表的论文《理想自动机》给人工智能下了严格的数学定义,现实世界中实际要...
代理ip网址http://www.goubanjia.com/http://www.ip181.com/https://www.kuaidaili.com/python 环境安装requests库安装bs4库proxies设置代理服务器地址proxies = {'http': 'http://61.155.164.110:3128'}http://www.goub......
要求:用户正确输入用户名和密码便成功登陆,分别有三次机会输入用户名和密码,超过3次便锁定分析:用两个while循环即可,代码如下:user_name = Brettpassword = 1314i = 0n = 0Is_exit = False #进入循环标志while not Is_exit:User_name = input(please ...
MacOS设置环境变量path的完全总结 一、MacOS加载bash shell 环境变量的加载顺序 mac 一般使用bash作为默认shell,Mac系统的环境变量,加载顺序为:1、系统级别的/etc/profile ...
当你运行代码的时候,需要你指定闹钟的时间,然后闹钟就会在指定的时间想起来。电脑pytho加载time模块,获取此时此刻的时间:import timet = time.localtime()print(t)时间是以字典的形式出现的。从字典里面提取时间信息:now = time.strftime(%H %M, t).spli...
在几千条数据中有正负数,筛选出同一供应商下正负数相加为零的数据,正负数相加有可能为一正一负相加为零,也有可能是一正多负,也有可能一负多正,总体是将可以所有正负数相加为零的数据标注颜色出来。excel论坛上说计算量太 ...可以用pandas来处理...
import sqlite3p = sqlite3.connect(file:memDB1?mode=memory&cache=shared, uri=True)p.execute('CREATE TABLE tbTest (fld1, fld2)')p.execute(INSERT INTO tbTest VALUES ('fld1', 'fld2'...
Java企业级解决方案较多且成熟,国内搜索网站上对于各种问题的解答较多,相比而言,Python成熟企业级解决方案没Java多,资料多以外文为主。国内web开发大环境一直以Java为主,从业者人口基数众多,小白学习Java无论是书籍还是视频资料一搜一大把,从业者技术...
当然可以了,不只是可以处理表格,而且是非常高效的额处理表格,能大大减轻工作量学会使用Python处理表格的话之前接了一个国企的case,说让我们给出一个解决方案关于数据处理方面的,去了他们天津的公司,一个部门7个人,7个人的工作我看了一下,我和我的同事...
1、兼职处理数据2、兼职查询资料3、兼职P图
Python是一门编程语言。相比于其他编程语言, Python爬取网页文档的接口更简洁;Python的urlib2包提供了完整的访问网页文档的API ;并且python中有优秀的第三方包可以高效实现网页抓取,可用极短的代码完成网页的标签过滤功能。所以Python被很多人称为爬虫。...
可以的,python语法简单。刚开始学习可以试一下
这两个其实现在用的都很普遍,java可能更好用一些吧
1.if 语句1)基本用法:if 要判断的条件: 条件成立的时候,要做的事情else: 条件不成立的时候,要做的事情 if和else语句以及各自的缩进部分都是一个完整的代码块示例:2)if ,elifif 要判断的条件: 条件成立的时候,要做的事情elif 条件2...
首先,从应用领域来看,Python语言涉及范围广,应用路径宽。其中包括: (1)Web和Internet开发 (2)科学计算和统计 (3)人工智能 (4)桌面界面开发 (5)软件开发 (6)后端开发 (7)网络爬虫...
最多设置5个标签!
大致步骤:Python学习交流群:741090028
1.安装Python3,pip工具环境
2.安装xlrd和xlwt
3.读取所有源Excel文件
4.将读取到的Excel信息组织到新的Excel对象中
5.数据缓存和分析
6.向新Excel对象中追加分析结果
7.将新Excel对象保存为目标输出文件(最终想要的文件)
1.对于Python环境的安装本文不做说明。
2.安装Python扩展包有不同的方式,这里使用pip命令安装xlrd和xlwt。
在Windows下,打开命令提示符(控制台),cd python的安装路径下Scripts文件夹下(在这里有pip命令执行工具)。或者将该路径添加到系统环境变量。
xlrd:读取Excel的扩展包
执行:pip install xlrd
xlwt:写入Excel的扩展包
执行:pip install xlwt
随便写一个py文件写入import xlrd, xlwt 执行该文件不出错说明安装成功。
或者打开python自带的编辑器进行输入测试。
3.具体代码如下
4.针对合并的单元格,上述代码会出现合并单元格只有一个格子有内容其余为空的情况。这种情形,现将当前sheet表格内所有合并单元格数据保存下来,当遇到属于合并单元格的部分,则默认选取该合并单元格的第一个格子的数值即可。代码如下:
5.数据缓存可以利用python中的容器,和对象结构,将Excel中的数据对象化,在读取时候进行实例化然后进行保存。在需要进行数据分析的时候利用。
6.在遇到特殊的表格格式的时候,读取的内容可能在转存的时候出现类型错误,导致无法识别。例如时间类型,正确显示需要按特定格式进行读取并且转换。
表格类型说明: table.ctype
0 empty
1 string
2 number
3 date
4 boolean
5 error
代码如下:
7.最终,我们写一个windows下的bat批处理文件或者在linux下写一个shell,将文档名字作为参数传入执行即可。
到此我利用程序完成了几天的工作,还可以在以后相同的使用环境下更快速的完成工作。
Python是现在仅次于C,C++,和java的计算机语言。
因为开源所以有很多大家开发的包;
关于操作excel的包有很多:推荐你使用xlwings,简单实用哦.
Doc命令下输入 pip install xlwings就可以安装这个包。
python环境下import xlwings as xw就可以使用这个包了,同时VBA也可以完成对它的引用。
相关问题推荐
可以试下在cmd命令行执行,编辑器中对turtle的支持度不是很好。
人工智能是一门起步晚却发展快速的科学。20 世纪以来科学工作者们不断寻求着赋予机器人类智慧的方法。现代人工智能这一概念是从英国科学家图灵的寻求智能机发展而来,直到1937年图灵发表的论文《理想自动机》给人工智能下了严格的数学定义,现实世界中实际要...
代理ip网址http://www.goubanjia.com/http://www.ip181.com/https://www.kuaidaili.com/python 环境安装requests库安装bs4库proxies设置代理服务器地址proxies = {'http': 'http://61.155.164.110:3128'}http://www.goub......
要求:用户正确输入用户名和密码便成功登陆,分别有三次机会输入用户名和密码,超过3次便锁定分析:用两个while循环即可,代码如下:user_name = Brettpassword = 1314i = 0n = 0Is_exit = False #进入循环标志while not Is_exit:User_name = input(please ...
MacOS设置环境变量path的完全总结 一、MacOS加载bash shell 环境变量的加载顺序 mac 一般使用bash作为默认shell,Mac系统的环境变量,加载顺序为:1、系统级别的/etc/profile ...
当你运行代码的时候,需要你指定闹钟的时间,然后闹钟就会在指定的时间想起来。电脑pytho加载time模块,获取此时此刻的时间:import timet = time.localtime()print(t)时间是以字典的形式出现的。从字典里面提取时间信息:now = time.strftime(%H %M, t).spli...
在几千条数据中有正负数,筛选出同一供应商下正负数相加为零的数据,正负数相加有可能为一正一负相加为零,也有可能是一正多负,也有可能一负多正,总体是将可以所有正负数相加为零的数据标注颜色出来。excel论坛上说计算量太 ...可以用pandas来处理...
import sqlite3p = sqlite3.connect(file:memDB1?mode=memory&cache=shared, uri=True)p.execute('CREATE TABLE tbTest (fld1, fld2)')p.execute(INSERT INTO tbTest VALUES ('fld1', 'fld2'...
Java企业级解决方案较多且成熟,国内搜索网站上对于各种问题的解答较多,相比而言,Python成熟企业级解决方案没Java多,资料多以外文为主。国内web开发大环境一直以Java为主,从业者人口基数众多,小白学习Java无论是书籍还是视频资料一搜一大把,从业者技术...
当然可以了,不只是可以处理表格,而且是非常高效的额处理表格,能大大减轻工作量学会使用Python处理表格的话之前接了一个国企的case,说让我们给出一个解决方案关于数据处理方面的,去了他们天津的公司,一个部门7个人,7个人的工作我看了一下,我和我的同事...
1、兼职处理数据2、兼职查询资料3、兼职P图
Python是一门编程语言。相比于其他编程语言, Python爬取网页文档的接口更简洁;Python的urlib2包提供了完整的访问网页文档的API ;并且python中有优秀的第三方包可以高效实现网页抓取,可用极短的代码完成网页的标签过滤功能。所以Python被很多人称为爬虫。...
可以的,python语法简单。刚开始学习可以试一下
这两个其实现在用的都很普遍,java可能更好用一些吧
1.if 语句1)基本用法:if 要判断的条件: 条件成立的时候,要做的事情else: 条件不成立的时候,要做的事情 if和else语句以及各自的缩进部分都是一个完整的代码块示例:2)if ,elifif 要判断的条件: 条件成立的时候,要做的事情elif 条件2...
首先,从应用领域来看,Python语言涉及范围广,应用路径宽。其中包括: (1)Web和Internet开发 (2)科学计算和统计 (3)人工智能 (4)桌面界面开发 (5)软件开发 (6)后端开发 (7)网络爬虫...