【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文件

  1. 创建一个excel文件
    新建文件:openpyxl.Workbook()
import openpyxl
wb = openpyxl.Workbook()

如果文件存在:openpyxl.load_workbook()

  1. 操作工作表
  • 创建工作表对象:create_sheet(表名,下标)
    不加下标,默认直接在工作簿最后追加工作表
wb.create_sheet('学生成绩', 0)
  • 移除工作表:remove[‘表名’]
sh1 = wb['Sheet']
wb.remove(sh1)
  1. 从学生成绩工作表插入信息
  • 方法一:使用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)
  1. 保存文件
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)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值