利用python处理excel表格
注意事项:在excel打开状态下无法进行写入和保存,但是可以读取。
1、excel的两种格式(xlsx,xls)
建议使用xlsx,遇到xls统统都用pandas转换为xlsx格式之后在进行操作。
下面是对一个文件夹进行xls转xlsx,会破坏xls的表格结构,但是数据不影响
from tkinter import filedialog
import os
import pandas as pd
def xls_xlsx():
Folderpath = filedialog.askdirectory() #获得选择好的文件夹
path=Folderpath #待读取的文件夹
print(path)
path_list=os.listdir(path)
path_list.sort() #对读取的路径进行排序
for filename in path_list:
print(os.path.join(path,filename))
print(filename)
if(filename[-3:]=="xls"):
df = pd.read_excel(filename)
df.to_excel(filename+"x")
os.remove(filename)
2、对excel(xlsx)进行读写
1、读操作
from openpyxl import load_workbook,
def read_xlsx():
wb = load_workbook("文件名.xlsx")
sheet = wb["对应的Sheet"]
#x为行,y为列
print(sheet.cell(x,y).value)#读取x,y的单元格的值 x,y都是需要自己填写的
wb.close()
2、写操作
from openpyxl import load_workbook,
def write_xlsx():
wb = load_workbook("文件名.xlsx") #文件名需要自己填写
sheet = wb["对应的Sheet"] #Sheet需要自己填写
#x为行,y为列
print(sheet.cell(x,y).value)#读取x,y的单元格的值 x,y都是需要自己填写的
#在x,y的单元格填入Value的数据
sheet.cell(x,y).value = Value #Value是填入的值 x,y都是需要自己填写的
wb.save("文件名.xlsx")
wb.close()
3、一些简单的算法
筛选
#查看是否有重复的情况
str1 = '加油吧!少年'
str2 = '少年'
result = str2 in str1 #前面是短的,后面的是长的
print(result) #True 或者 False
判断单元格是否为空
wb = load_workbook("文件名.xlsx") #文件名需要自己填写
sheet = wb["对应的Sheet"] #Sheet需要自己填写
#第一列的
i = 0
while(sheet.cell(i,1).value != None):
i+=1
print("第一列一共有: "+str(i)+" 行数据")
总结
目前这些已足够完成一些小规模的表格操作。减轻重复表格方面的工作量。
学无止境、勇攀高峰。