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)