写入方式(一)——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)
输出结果:

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

被折叠的 条评论
为什么被折叠?



