引言:上一篇介绍用openpyxl库来删除修改excel表中的数据,本篇来做一次小总结,在新增一些表的操作和新的增删查改方法,下篇来写一些场景问题来应用最近写的这些操作,敬请期待~
准备:操作系统:Windows10;python版本:python3.8以上
一、python操作excel表总结与归纳
需要优先安装pandas库和openpyxl库,安装命令是:
pip install pandas pip install openpyxl
1. 用openpyxl库给excel创建新表/增加数据
创建新的表(sheet),代码如下:
from openpyxl import load_workbook wri_path = '选择自己的文件路径' # 文件路径 workbook = load_workbook(wri_path) # 打开excel文件 workbook.create_sheet("test1") # 创建新的test1 workbook.save(wri_path)
插入空行和空列,代码如下:
wri_path = '选择自己的文件路径' # 文件路径 workbook = load_workbook(wri_path) # 打开excel文件 sheet = workbook.get_sheet_by_name('Sheet1') sheet.insert_cols(2) # 在第2列即B列插入1列,原来的B列及后面的列都往后移动 sheet.insert_rows(2, 3) # 在第2行后面插入3行 workbook.save(wri_path)
追加列数据,代码如下:
wri_path = '请选择你的excel文件路径' #追加列数据(增加列数据) #打开excel文件 excel = load_workbook(wri_path) #选择工作表Sheet1 sheet = excel.get_sheet_by_name('Sheet1') #追加定位位置 last_col = sheet.max_column #追加新数据 col_data = ['请','填','写','你','的','数','据'] #遍历col_data的索引和它的值 for row, data in enumerate(col_data,start=1): # 将col_data的索引赋值给sheet的行,将数据最后的列+1赋值给sheet的列,col_data的值赋值给sheet的值 sheet.cell(row = row, column = last_col + 1, value = data) #保存并关闭Excel表 excel.save(wri_path) excel.close()
追加行数据,代码如下:
wri_path = '请选择你的excel文件路径' #追加新数据(增加数据) #打开excel文件 excel = load_workbook(wri_path) #选择工作表Sheet1 sheet = excel.get_sheet_by_name('Sheet1') #追加定位位置 sheet.max_row + 1 #追加新数据 add_data = ['请','填','写','你','的','数','据'] sheet.append(add_data) #保存并关闭Excel表 excel.save(wri_path) excel.close()
2. 用openpyxl库删除数据
删除sheet(表),代码如下:
from openpyxl import load_workbook wri_path = '请输入你的excel文件路径' # 文件路径 workbook = load_workbook(wri_path) # 打开excel文件 #先获取表 sheet=workbook["Sheet3"] #再删除表 workbook.remove(sheet) # 删除Sheet3表 #再保存表 workbook.save(wri_path)
删除单元格数据,代码如下:
wri_path = '请选择你的excel文件路径' #删除特定单元格的数据 #打开excel文件 wb = load_workbook(wri_path) #选择表"Sheet1" sheet = wb.get_sheet_by_name('Sheet1') #比如删除B6的值,行为6,列为2(这里使用修改的方式) sheet['B6'].value = None #或者使用 '' 来清除内容 #保存并关闭Excel表 wb.save(wri_path) wb.close()
删除行数据,代码如下:
wri_path = '请选择你的excel文件路径' #删除第5行数据 wb = load_workbook(wri_path) sheet = wb.get_sheet_by_name('Sheet1') #删除第五行的这一行数据 sheet.delete_rows(idx = 4, amount = 1) #dix是第几行,amount是删除的行数 #保存删除操作 wb.save(wri_path)
删除列数据,代码如下:
wri_path = '请选择你的excel文件路径' #删除第2列数据 wb = load_workbook(wri_path) sheet = wb.get_sheet_by_name('Sheet1') #删除第二列的这一行数据 sheet.delete_cols(idx = 2, amount = 1) #dix是第几列,amount是删除的列数 #保存删除操作 wb.save(wri_path)
3. 用pandas库查询数据
查询全部数据,代码如下:
import pandas as pd #自定义excel表的文件路径 exc_path = "请填写你的excel路径" #使用pd.read_excel()函数读取excel表的内容 df0 = pd.read_excel(io = exc_path,index_col = None) #打印df0的类型和df0的内容 print(df0)
查询特定sheet(表)的数据,代码如下:
import pandas as pd #自定义excel表的文件路径 exc_path = "请填写你的excel路径" #使用pd.read_excel()函数读取excel表的内容,表名为"Sheet1"的内容赋值给df0 df0 = pd.read_excel(io = exc_path, sheet_name = "Sheet1",index_col = None) #打印df0的类型和df0的内容 print(df0)
查询特定列的数据,代码如下:
import pandas as pd #自定义excel表的文件路径 exc_path = "请填写你的excel路径" #使用pd.read_excel()函数读取excel表的内容,表名为"Sheet1"的内容赋值给df0 #usecols参数可以选择列: #1.可以连续选择A到D列,追加参数usecols = "A:D"; #2.可以选择已知表头查询,比如"姓名"和"年龄",追加参数usecols = ["姓名","年龄"] #3.可以选择非连续的几列数据,比如第1列和第4列,可以追加参数usecols = [1,4] df0 = pd.read_excel(io = exc_path, sheet_name = "Sheet1", index_col = None, usecols = "A:D") # df1 = pd.read_excel(io = exc_path, sheet_name = "Sheet1", index_col = None, usecols = ["姓名","年龄"]) # df2 = pd.read_excel(io = exc_path, sheet_name = "Sheet1", index_col = None, usecols = [1,4]) #打印df0的类型和df0的内容 print(df0) #print(df1) #print(df2)
查询指定列格式的数据,代码如下:
import pandas as pd #自定义excel表的文件路径 exc_path = "请填写你的excel路径" #使用pd.read_excel()函数读取excel表的内容,表名为"Sheet1"的内容赋值给df0 #dtype参数:选择特定列,并修改列数据的数据类型 df0 = pd.read_excel(io = exc_path, sheet_name = "Sheet1", index_col = None, dtype={'年龄' : float}) #打印df0的内容 print(df0)
查询指定行的数据,代码如下:
import pandas as pd exc_path = '请选择你的excel表的路径' #使用pd.read_excel()函数读取excel表的内容,表名为"Sheet1"的内容赋值给df0 df0 = pd.read_excel(io = exc_path, sheet_name = "Sheet1", index_col=None) #[]范围查询,左闭右开,第6行数据,应该表示为[5:6] row_data = df0[5:6] print(row_data)
查询特定单元格的数据,代码如下:
import pandas as pd exc_path = '请填写你的excel文件的路径' df0 = pd.read_excel(io = exc_path, sheet_name = "Sheet1", index_col=None) data = df0.loc[5, "姓名"] print(data)
当然还有很多的pandas查询方法,我这边就列一些我们常用的
4. 用openpyxl库修改数据
修改某个单元格数据,代码如下:
from openpyxl import load_workbook wri_path = '选择你的excel的路径' #修改单个单元格数据 #打开excel文件 wb = load_workbook(wri_path) #选择表"Sheet1" sheet = wb.get_sheet_by_name('Sheet1') #修改A10的数据 sheet['A10'] = '你要修改的数据' #保存操作 wb.save(wri_path)
修改某一行的数据,代码如下:
from openpyxl import load_workbook wri_path = '选择你的excel的路径' #修改整行数据 #打开excel文件 wb = load_workbook(wri_path) #选择表"Sheet1" sheet = wb['Sheet1'] modify_data = ['你','的','数','据'] #修改行数据 #获取第10行数据 row = sheet[10] #将数据逐个插入到单元格中 for cell, data in zip(row, modify_data): cell.value = data #保存操作 wb.save(wri_path)
修改某一列数据,代码如下:
from openpyxl import load_workbook wri_path = '选择你的excel的路径' #修改整行数据 #打开excel文件 wb = load_workbook(wri_path) #选择表"Sheet1" sheet = wb['Sheet1'] modify_data = ['你','的','数','据'] #修改行数据 #获取第B列数据,包括表头 col = sheet['B'] #将数据逐个插入到单元格中 for cell, data in zip(col, modify_data): cell.value = data #保存操作 wb.save(wri_path)
参考:
1. python使用Excel文件(增、删、改、查)_python excel读取 删除-CSDN博客
2. Python:利用Pandas读取数据、查询指定条件的数据、以及数据的详细信息_pandas查看某一列的值及数量-CSDN博客
以上使用方法和函数参考官方文档和以上专业博客,如有雷同侵权,请联系我处理,感谢各位同志们的支持