基本概念:
- 盖楼房(安装python)
- 创建厨房(python虚拟环境)
- 购买锅碗瓢盆(各种库,各种工具)
- 干活做饭(处理execel表格)
1.安装Python 3 (建好一栋楼):
这个步骤具体的就不写了,可以自己百度 安装完python后,我们相当于有了一栋楼
2.创建虚拟环境:
打开cmd,在cmd里面创建虚拟环境 相当于创建自家的厨房,当然也可以不创建,直接整栋楼所有家庭使用同一个厨房,但是这样会非常混乱,锅碗瓢盆都放一起,到时候管理混乱。 (1).安装虚拟环境的指令:virtualenv excelEnv(这个可以自己起名字) 如果没有安装virtualenv(专门用来创建虚拟环境),需要先进行安装 pip install virtualenv。 (2).启用虚拟环境:.\excelEnv\Scripts\activate.bat (excelEnv) c:\technology\Python>
3.安装依赖包(就是处理excel表格的工具):
启用虚拟环境后(相当于创建了厨房),安装各种工具(相当于配置锅碗瓢盆)。 (1).安装excel表格处理工具:pip install openpyxl, ??? 还有其它的处理excel的工具,例如 pip install xlrd (2).如果还需要别的工具,则根据自己的需要进行安装。
4.干活
1.第一种方式:主要是自己做实验用
首先执行python指令,进入python命令行 (1).拿到工具(我们安装的excel表格处理工具) import openpyxl 或者 import xlrd
(2)找到需要处理的execel表格。 wb = openpyxl.load_workbook('test.xlsx')
(3)开始正式操作: 得到所有的sheet,sheet就是所有的页面 >>> wb.get_sheet_names() ['test1', 'Sheet2']
得到其中某个sheet >>> sheet = wb.get_sheet_by_name('test1') >>> sheet.title 'test1'
2.第二种方式:
创建一个py文件,将所有命令放到里面 例如,创建了一个py文件,叫做testcase.py 怎样执行这个文件里的指令呢? (excelEnv) c:\technology\Python>? python testcase.py
下面给吃一个具体的例子, testcase.py内容如下:
import xlrd
import os
from datetime import datetime
from xlrd import xldate_as_tuple
'''
python读取excel中单元格的内容返回的5种类型
0 --empty:空
1 --string:字符串
2 --number:数字
3 --date:日期
4 --boolean:布尔
5 --error
'''
excel_path = os.path.join(os.getcwd(), 'test.xlsx') # Excel文件路径
print('Excel文件的路径:' + excel_path)
excel_file = xlrd.open_workbook(excel_path) # 打开Excel文件
# table = excel_file.sheet_by_index(1) # 通过索引打开
# table = excel_file.sheet_by_name('mode') # 通过名字打开
table = excel_file.sheets()[0] # 通过索引打开
print('已经打开的工作簿的名字:' + table.name)
print('**********开始读取Excel单元格的内容**********')
all_content = []
for i in range(table.nrows):
row_content = []
for j in range(table.ncols):
ctype = table.cell(i, j).ctype # 获取单元格返回的数据类型
cell_value = table.cell(i, j).value # 获取单元格内容
if ctype == 2 and cell_value % 1 == 0: # 是否是数字类型
cell_value = int(cell_value)
elif ctype == 3: # 是否是日期
date = datetime(*xldate_as_tuple(cell_value, 0))
cell_value = date.strftime('%Y/%m/%d %H:%M:%S')
elif ctype == 4: # 是否是布尔类型
cell_value = True if cell_value == 1 else False
row_content.append(cell_value)
all_content.append(row_content)
# print('[' + ', '.join("'" + str(element) + "'" for element in row_content) + ']')
print(row_content)
# print(all_content)
print('**********Excel单元格的内容读取完毕**********')
print('行数:%d' % table.nrows) # 打印行数
print('列数:%d' % table.ncols) # 打印列数
print('========================')
print('第二行的内容:' + str(table.row_values(1))) # 打印一行的内容
print('第二列的内容:' + str(table.col_values(1))) # 打印一列的内容
print('========================')
# 打印单元格的内容(以下打印的是第二行第二列的单元格的内容)
print(table.cell(1, 1).value)
#print(table.cell_value(1, 1))
#print(table.row(1)[1].value)
print('========================')
执行结果如下:
?
|