【无标题】

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

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

对应的读取方式——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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

例子:

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.]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

写入方式(二)——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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

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

 
 
  • 1
  • 2
  • 3
  • 4

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

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树数据分析Excel文件 408152 人正在系统学习中
pdf_watermark
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值