最近频繁遇到一些处理excel读写的问题。这里把我遇到到两种方法做一个简单的总结。
-
使用xlrd和xlwt读写Excel文件
要使用xlrd和xlwt这两个模块,需要首先安装,使用pip安装,具体就不赘述了。
'''
Read and write Excel using xlrd and xlwt
'''
__author__ = "wayne"
import xlrd
import xlwt
fileName = r"test.xlsx"
bk = xlrd.open_workbook(fileName)
try:
sh = bk.sheet_by_name("论坛")
except:
print("no sheet in %s named Sheet1" % fileName)
#获取行数
nrows = sh.nrows
#获取列数
ncols = sh.ncols
print("行数: %d, 列数: %d" % (nrows,ncols))
row_list = []
#获取各行数据
for i in range(1,nrows):
row_data = sh.row_values(i)
row_list.append(row_data)
for j in range(ncols):
for i in row_list:
print(i[j])
print("使用cell函数-----------------------------------------------------------")
for m in range(1,nrows):
for n in range(ncols):
print(sh.cell(m,n).value)
#下面的代码是写操作,我们把上面获得的数据写入到一个新的excel中
writeBook= xlwt.Workbook(encoding='utf-8')
sheet = writeBook.add_sheet("document",cell_overwrite_ok=True)
style = xlwt.XFStyle()
for m in range(0,nrows):
for n in range(ncols):
sheet.write(m, n, sh.cell(m,n).value)
writeBook.save("new_output.xls")
-
使用pandas读写Excel文件
Pandas 本身是一个很强大的数据处理工具。这里我们用它来处理excel赶脚有点大材小用。
'''
Read and write Excel using pandas
'''
__author__ = "wayne"
import pandas as pd
from pandas import DataFrame
df=pd.read_excel('test.xlsx',sheetname=1) #读取第2个sheet
print(format(df))
print("读取所有sheet name-------------------------------")
ReadSheets=pd.ExcelFile('test.xlsx')
for i in ReadSheets.sheet_names:
print(i)
print("按照sheet名称读取------------------------------")
data = pd.read_excel('test.xlsx', sheet_name = 'news')
print(data)
'''
pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)
'''
print("写数据------------------------------------")
DataFrame(df).to_excel("new_excel.xlsx",sheet_name='guess', index=False, header=True)
对于df数据,我们可以做一些处理以后再写到新的表里面。
新增列 df['列名称']
新增行 df.loc[行数] =[]
# 删除列,需要指定axis为1,当删除行时,axis为0
df= df.drop('列名称', axis=1)
df= df.drop([1, 3], axis=0)