【Python学习】Day-09 xlsx文件读写
1. Excel介绍
Excel后缀名:.xls .xlsx
-
.xls:Excel2007以前的文件后缀名。最多容纳256列16000+行数据 —> xlwt、xlrd .xlsx:Excel2007以后开始使用的后缀名。最多容纳16000+列1048567行数据 —> openpyxl Excel 从2007开始兼容.xls .xlsx
python能够操作excel的模块有: openpyxl、xlsxwriter、xlwt、xlrd、pandas、win32com、xlutils等
-
工作簿:一个excel文件就是一个工作簿 工作表:sheet1、sheet2.。。 单元格:excel中的每一个小格
2. 创建xlsx文件
- 创建一个excel文件 新建文件:openpyxl.Workbook()
import openpyxl wb = openpyxl.Workbook()
如果文件存在:openpyxl.load_workbook()
- 操作工作表
-
创建工作表对象:create_sheet(表名,下标) 不加下标,默认直接在工作簿最后追加工作表
wb.create_sheet(学生成绩, 0)
-
移除工作表:remove[‘表名’]
sh1 = wb[Sheet] wb.remove(sh1)
- 从学生成绩工作表插入信息
-
方法一:使用cell(行号, 列号) —>定位单元格;value —>获取单元格内容
wb[学生成绩].cell(1, 1).value=姓名 print(wb[学生成绩].cell(1, 1).value) sh12 = wb[学生成绩].cell(1, 2).value=性别 print(sh12)
-
方法二:使用[行号列号] —>定位单元格
wb[学生成绩][AAA1] = 姓名 print(wb[学生成绩][AAA1].value)
- 保存文件
wb.save(../file/学生成绩.xlsx)
3. csv文件数据写入xlsx文件
import os
import csv
import openpyxl
# 新建xlsx后缀文件
wb = openpyxl.Workbook()
# 新建工作表
wb.create_sheet(成都链家二手房数据汇总, 0)
# listdir() :能读取指定文件夹下的所有子文件
file_list = os.listdir(../file/成都链家二手房数据/)
# print(file_list)
title = [行政区, 标题, 小区, 街道, 户型, 面积, 装修, 单价, 总价]
for h in range(len(title)):
wb[成都链家二手房数据汇总].cell(1,h+1).value = title[h]
# count: 计数进行号的递增
count = 1
for i in file_list:
if i[-9:] == 二手房信息.csv and i[:2] == 成都:
f = open(f../file/成都链家二手房数据/{
i}, r, encoding=utf-8)
read_data = csv.reader(f)
next(read_data)
for j in read_data:
count += 1
# for x in enumerate(j):
for x in range(0, len(j)):
# 根据,每一条数据长度判断写n列
wb[成都链家二手房数据汇总].cell(count,x+1).value = j[x]
f.close()
wb.save(../file/成都链家二手房数据.xlsx)
4. xlsx文件的读取
import openpyxl
# max_row/max_column
# 加载xlsx
wb = openpyxl.load_workbook(../file/成都链家二手房数据.xlsx)
# 从工作簿中找工作表
ws = wb[成都链家二手房数据汇总]
# max_row:获取xlsx文件最大行数
rows = ws.max_row
# print(rows)
# max_column:获取xlsx文件最大列数
cols = ws.max_column
# print(cols)
# 行
for i in range(1, rows+1):
# 列
for j in range(1, cols+1):
print(ws.cell(i,j).value)
