【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)