excel的读写

Excel的写操作

‘’’
微软的Excel
后缀名:.xls、.xlsx
.xls:excel2007以前的文件后缀名。最多容纳256列16000+行数据 —>xlwt,xlrd

.xlsx:excel2007开始文件使用的后缀名。最多容纳16000多列1048567行数据
excel 2007开始兼容xls、xlsx后缀名 —>openpyxl
‘’’

python能够操作excel的模块:
openpyxl、xlsxwrite、xlwt、pandas、xlrd、win32com、xlutils等
安装第三方模块 openpyxl

如何安装虚拟模块到虚拟环境:
1.激活虚拟环境

使用 ./venv/scripts/activate 在系统里面输入进行环境激活

报错:因为微软禁用了终端执行脚本的功能。

使用: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser解除禁用

再次执行 ./venv/scripts/activate
2.venv -->虚拟环境已经激活

查看已安装的模块:pip list

工作薄:一个excel文件就是一个工作薄。
工作表:一个工作薄的多张表格。
单元格:存储信息的方格

import openpyxl #导入第三方模块

1

1.新建一个excel文件

file = openpyxl.Workbook()

1

如果文件存在:openpyxl.load_workbook(文件路径和文件名)
2.操作工作表

创建工作表对象:create_sheet(表名,下标)

如果直接在工作薄追加工作表,下标参数可以不写

file.create_sheet(‘学生’, 0) #指定下标为0的file工作薄的位置增加一个表名为学生的工作表
file.create_sheet(‘学生成绩’) # 在后者直接追加名为学生成绩的工作表

1
2

查看工作薄中已经存在的工作表:sheetname

print(file.sheetnames) # [‘学生’, ‘Sheet’, ‘学生成绩’]

1

移除工作表:remove(表) -->表:工作薄对象[工作表]

file.remove(file[‘Sheet’])

1

从学生成绩工作表插入信息

方法一:使用cell(行号,列号)定位单元格

cell(行号,列号) ->定位单元格用的

value - ->获取单元格内容

print(file[‘学生’].cell(1, 1).value) # None 没添加东西
file[‘学生’].cell(1, 1).value =‘姓名’
print(file[‘学生’].cell(1, 1).value)
file[‘学生’].cell(1, 2).value = ‘性别’

1
2
3
4

方法二:使用[列号行号]定位单元格

file[‘学生成绩’][‘AAA1’] =‘姓名’
print(file[‘学生成绩’][‘AAA1’].value)

1
2

保存文件

file.save(‘./学生成绩.xlsx’) #文件名 不是工作薄的名字

1

os模块

import os

1

file_list =os.listdir(‘…/作业’) #os.listdir§ p:为相对文件路径
print(file_list,type(file_list)) # os.listdir 找寻相对路径中文件夹的中的所有文件
for i in file_list:
if i[-4:] == ‘.csv’: # 目的是为了找寻某文件夹中后缀名为.csv的文件 进行输出
print(i)

1
2
3
4
5

csv文件数据写入xlsx

import os # 只有一个数据就不用 因为是文件夹多个数据 使用os可以方便导入多个文件
import csv
import openpyxl

1
2
3

新建xlsx后缀名

file = openpyxl.Workbook()

1

新建工作表

file.create_sheet(‘成都链家二手房数据汇总’)

1

‘’‘’

上诉只是为了新文件的创建做开端

‘’‘

file_list = os.listdir(‘./作业’) #读取’作业’文件夹中的所有子文件

1

count = 0 # 作用进行行号的递增
for i in file_list:
if i[-4:] == ‘.csv’ ‘:
f = open(f’./作业/{i}', ‘r’, encoding=‘utf-8’)
read_data = csv.reader(f)
for j in read_data: # 读出来是列表
count += 1
for x in range(0, len(j)): # 根据每一条数据长度判断写N列
file[‘成都链家二手房数据汇总’].cell(count, x+1).value = j[x]
f.close()

file.save(‘./成都链家二手房.xlsx’)
print(‘打印成功’)

1
2
3
4
5
6
7
8
9
10
11
12
13

读excel文件

import openpyxl

1

max_row

max_column

file = openpyxl.load_workbook(‘./成都链家二手房.xlsx’) #加载xlsx

1

ws = file[‘成都链家二手房数据汇总’] # 工作薄中找工作表

1

获取max_row: 获取xlsx文件中最大行数

rows = ws.max_row

1

max_column:获取xlsx文件中最大列数

col = ws.max_columl

1

for i in range(1, rows + 1): # 行
for j in range(1, col + 1): # 列
print(ws.cell(i, j).value)

————————————————
版权声明:本文为CSDN博主「ZiXiaoAo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ZiXiaoAo/article/details/125562491

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zack_36

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值