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