首页 其他 如何用python处理excel(如何用python处理数据)

如何用python处理excel(如何用python处理数据)

其他 103
广告一

前言

Python处理Excel的包是openpyxl,其支持操作的文件类型为:.xlsx, .xlsm, .xltx, .xltm

pip install openpyxl

安装完成之后,我们应该了解一下Excel的组成部分,如下图所示:

Excel文件中三个对象

workbook: 工作簿,就是一个excel文件sheet:工作表,一个workbook有多个工作表,表名识别,如“sheet1”,“sheet2”等。cell: 单元格,存储数据对象

一、创建、打开excel文件1、创建空白工作簿

创建一个空的工作簿,并将默认工作表重命名

#导入库中的工作簿from openpyxl import Workbook #创建工作簿 wb = Workbook()#获取当前所在的sheet,激活 sheet = wb.active #设置工作表名称,也可以不设置,不设置工作表默认名称为Sheet sheet.title = "工作表1" print(sheet.title) #打印工作表名字 #保存表 wb.save("new_excel.xlsx") 如下成功创建

2、打开已有文件

from openpyxl import Workbook, load_workbook #加载excel文件wb = load_workbook("new_excel.xlsx")#获取所在的工作表sheet = wb.active#打印工作表名print(sheet.title) #输出"工作表1"二、工作表中的数据操作往excel中写数据是按照坐标的方式进行写入的,每个单元格都可以用 “纵坐标横坐标”表示,如下位置:

写数据方法一:自定义位置写入数据

如下在C3和D3的地方写入数据

#导入库中的工作簿from openpyxl import Workbook, load_workbook #加载文件wb = load_workbook("new_excel.xlsx")#获取文件的所在工作表sheet = wb.active#打印工作表名print(sheet.title) #输出工作表1 sheet["C3"] = "girl"sheet["D3"] = "beautiful"#保存wb.save("new_excel.xlsx")

方法二:每行自动添加数据

会自动从上到下在有数据的那一行的下一行开始从左到右写入想要写入的数据

#导入库中的工作簿from openpyxl import Workbook, load_workbook #加载文件wb = load_workbook("new_excel.xlsx")#或者文件的所在工作表sheet = wb.active#打印工作表名print(sheet.title) #输出工作表1 sheet.append([11,22,33,44,55])sheet.append(['aa','bb','cc','dd','ee']) #保存wb.save("new_excel.xlsx")

读数据表格内容如下

#导入库中的工作簿from openpyxl import Workbook, load_workbook #加载文件wb = load_workbook("cma.xx.xlsx") # 1.打印所有的工作表print(wb.sheetnames) #输出 ['cma.xx', 'cma2.xx'] # 2.选择一个工作表进入sheet = wb["cma.xx"]#print(sheet) #输出 <Worksheet "cma.xx"> # 3.获取单元格A2的值print(sheet["A2"].value) #输出 http://api.data.xxx.cn:8090 # 4.获取多个单元格的值,在同一行中for cell in sheet["A2:C2"]: for i in cell: print(i.value) #输出具体单元格值# 5.在不同的行中for cell in sheet["A2:B4"]: for i in cell: print(i.value) #输出具体单元格值 # 6.打印表中的所有数据for row in sheet: #遍历每一行 for i in row: #遍历每一行中的每一个单元格 print(i.value,end=", ") #打印每行的单元格数据 print() # 7.获取指定范围单元格中的数据for row in sheet.iter_rows(min_row=2, max_row=5, max_col=6): for i in row: print(i.value,end=', ') print() # 8.按列的方式遍历,即以纵向的方式读取数据for row in sheet.columns: #从第一列数据开始遍历 for i in row: #获取每一列中的每一个数据 print(i.value,end=", ") print()删除数据1. 删除整列数据

#导入库中的工作簿from openpyxl import Workbook, load_workbook #加载文件wb = load_workbook("cma.xx.xlsx") # 选择一个工作表进入sheet = wb["cma.xx"] sheet.delete_cols(2) #指定删除第二列sheet.delete_cols(2,3) #删除第二列的往下三列,包括第二列 wb.save("cma.xx.xlsx")三、csv文件转xlsx在进行文件转换时我们需要关注两个文件的编码方式,在使用pandas读取csv文件时,也需要指定解码方式

1. 首先查看需要转换的ccv文件的编码方式,使用记事本打开csv文件,查看-状态栏,可以看到文件下方有编码方式:ANSI

2. 脚本如下

import pandas as pd def csv_to_xlsx(): csv = pd.read_csv('cma.xx.csv', encoding='ANSI') csv.to_excel('2.xlsx', sheet_name='data', index=False) if __name__ == '__main__': csv_to_xlsx()原文链接:https://www.jb51.net/article/232679.htm

广告一