Python的excel工作簿写入与读取操作

本文探讨了使用Python库xlwt进行xls文件写入的方法,与xlrd库读取xlsx文件的区别,以及csv库的写入与读取特点。重点介绍了Excel文件结构和Python操作步骤,并展示了实例操作。
Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

写入方式(一)——xlwt

xlwt(excel write)是一个用于将数据写入excel中的库,这个库只能用于写较老的excel文件(.xls格式),无法写.xlsx格式文件,并且无法修改一个已有的excel文件。
该方法写入时,只能循环一个一个数据写入,比如数组无法一次性写入行

import xlwt
import numpy as np

a = [[1,2,3],[4,5,6],[7,8,9]]
ar = np.array(a)
book = xlwt.Workbook()   # 创建Excel
sheet = book.add_sheet('sheet1', cell_overwrite_ok=True)    # 创建sheet页,cell_overwrite_ok=True表示允许单元格被重复操作
sheet.write(0, 0, 'label1')  # 第一个参数为row行, 第二个参数为col列, 第三个参数为写入的内容
sheet.write(0, 1, 'label2')
sheet.write(0, 2, 'label3')

row = 1
for num_row in range(len(a)):
    col = 0
    for i in(ar[num_row]):
        print(i)
        sheet.write(row, col, float(i))
        col += 1
    row+=1
book.save('./001.xls')

输出结果为:
在这里插入图片描述

对应的读取方式——xlrd

xlrd(Excel read)是一个用于读取excel(.xls或.xlsx格式)文件中信息的python库,它对excel的操作方式为只读,只能读取数据,不能写入或者修改数据。
在介绍xlrd库之前,我们先整体分析一下excel文件。首先,最顶层是一个.xls或者.xlsx文件,即工作簿(workbook),打开之后会有一个或几个不同的表单(sheet),每个表单会有多行(row)和多列(col),每一行和列又有多个单元格(cell)。总结一下,一个excel文件有工作簿、表单、行、列和单元格五中对象,我们要获取数据就要一层一层定位,确定我们想要的内容的位置,最终获取数据。下面开始介绍读取excel文件的一些常用操作。

#========1 工作簿对象==========
#导入xlrd库用于读取excel数据
import xlrd
#打开工作簿对象
book = xlrd.open_workbook('excel对象路径')

#========2 表单对象=========
#获取表单列表
sheets = book.sheets()
#通过索引获取表单对象
sheet = book.sheet_by_index(0)
sheet = book.sheets()[0]
#通过表单名称获取表单对象
sheet = book.sheet_by_name('表单名称')
#获取工作簿中表单数量
sheet_num = book.nsheets
#获取工作簿中表单名称列表
sheet_names = book.sheet_names()
#通过索引或名称载入表单,成功返回True,否则返回False
book.sheet_loaded(索引或名称)
#通过索引或名称卸载表单
book.unloaded_sheet()

#========3 行或列对象=========
#通过索引获取表单整行/列的值列表
row = sheet.row_values(0)
col = sheet.col_values(0)
#获取表单行/列数
row_num = sheet.nrows
col_num = sheet.ncols

#========4 单元格对象=========
cell = sheet.cell(i,j).value
cell = sheet.col_values(j)[i]
cell = sheet.row_values(i)[j]
cell = sheet.col(j)[I].value
cell = sheet.row(i)[j].value

例子:

fl = xlrd.open_workbook_xls('./001.xls')
xls_sheet = fl.sheets()[0]   # #获取表单列表
row_value = xls_sheet.row_values(1)   # 行
print(np.array(row_value))

输出:[1. 2. 3.]

写入方式(二)——csv

csv库能够实现整行写入,但是保存格式不能是.xls。
如果保存成.xls格式,会将整个数组放在一格里

import numpy as np
import csv

a = [[1,2,3],[4,5,6],[7,8,9]]
ar = np.array(a)
fl = open('./001.csv', 'w', newline='') # 若不加newline='',保存的文件里每一行都会多空出一行
writer = csv.writer(fl)
writer.writerow(['label1', 'label2', 'label3'])  # 整行写入
for values in ar:
    writer.writerow(values)
fl.close()

保存为.csv文件时:
在这里插入图片描述
保存成.xls文件时:
在这里插入图片描述

对应的读取方式
fl = csv.reader(open(r'./001.csv'))
print(fl)
for i in fl:
    print(i)

输出结果:
在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值