前言
安装方式 : pip install openpyxl
上班的时候摸鱼写的...先拿出来分享一下。目前还不完善,哪天有空完善一下...
# -*- coding: utf-8 -*-
#安装方式 : pip install openpyxl
import xlrd
import xlwt
from datetime import date, datetime
'''
row_index : 行
column_index : 列
data : 数据
'''
def create_file(row_index, column_index, data):
workbook = xlwt.Workbook(encoding='ascii')
#创建一个名叫Sheet2的表
sheet = workbook.add_sheet('Sheet1')
# row_index是行数,column_index是列数,data是要写入的数据
sheet.write(row_index, column_index, data)
workbook.save('C:/Users/Administrator/Desktop/test/data.xlsx')
'''
读取文件
fileName : 文件路径和文件名
flag : 是否打印 (这样调用更灵活)
return : 防止代码重复
'''
def read_excel(fileName,flag):
# 打开文件
workbook = xlrd.open_workbook(fileName)
#获取所有sheet表格,例如表格名为Sheet1
sheet_names = workbook.sheet_names()
#获取其中一个表格
sheet1 = workbook.sheet_by_name("Sheet1")
sheet_names = workbook.sheet_names()
dataSet = []
for row_index in range(0, sheet1.nrows):
dataSet.append(sheet1.row_values(row_index))
#如果用户需要遍历就遍历出来
if flag == True:
for i in range(0,dataSet.__len__()):
print(dataSet[i],"\n")
return dataSet
'''
获取指定的数据
colum : 指定列 (用于查找)
data : 用来对比
col : 指定列 (用于显示)
flag : 是否全列打印(如果是False 就不存在col这个参数)
flagPlus : 判断到底要不要显示(防止代码重复)
return: 返回数量
'''
def specify(colum,col,data,flag,flagPlus):
#统计数量
count = 0
#获得数据
arr = []
dataSet = read_excel(fileName,False)
#索引遍历
for i in range(0,dataSet.__len__()):
str = dataSet[i][colum]
if str == data:
arr.append(dataSet[i])
if flagPlus == True:
#只显示指定列的内容
if flag == True:
for i in range(0, arr.__len__()):
print(arr[i][col], "\n")
count = count + 1
#显示整列的内容
else:
for i in range(0, arr.__len__()):
print(arr[i], "\n")
count = count + 1
#只统计数量
else:
for i in range(0, arr.__len__()):
count = count + 1
return count
#文件路径
fileName = r"C:/Users/Administrator/Desktop/test/test.xlsx"
flag = True
while flag == True:
print("|=============================|")
print("| Excel 表格工具 |")
print("| 1 创建并写数据 |")
print("| 2 遍历表格数据 |")
print("| 3 查看指定内容 |")
print("| 4 查看指定列所有内容 |")
print("| 5 查看指定内容的数量 |")
print("| 0 退出程序 |")
print("|=============================|")
c = int(input("请选择 : "))
if c == 0:
flag = False
elif c == 1:
while True:
print("输入@0退出输入")
row = int(input("请输入行: "))
col = int(input("请输入列: "))
data = input("请输入数据: ")
if data == "@0":
break;
re = create_file(row - 1,col - 1,data)
elif c == 2:
re = read_excel(fileName, True)
elif c == 3:
colum = int(input("请输入指定列: "))
col = int(input("请输入显示的那一列: "))
str = input("请输入查找的内容: ")
specify(colum - 1,col - 1,str,True,True)
elif c == 4:
colum = int(input("请输入指定列: "))
str = input("请输入查找的内容: ")
specify(colum - 1,0,str,False,True)
elif c == 5:
colum = int(input("请输入指定列: "))
str = input("请输入查找的内容: ")
count = specify(colum - 1,0,str,False,False)
print(str,"在表格中的数量是 : ",count)
else:
print("输入有误!")