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
输出结果:
![pdf_watermark](https://i-blog.csdnimg.cn/blog_migrate/b7dc7fab4c881e2522a396009cd99f7a.png)
内容来源:csdn.net
作者昵称:Joker 007
原文链接:https://blog.csdn.net/Joker00007/article/details/120493942
作者主页:https://blog.csdn.net/Joker00007